正则expression式匹配一个点

想知道什么是最好的办法是匹配“test.this”从“等等等等等等等。 使用Python。

我试过re.split(r"\b\w.\w@")

谢谢!

A。 在正则expression式中是一个元字符,用来匹配任何字符。 要匹配一个字面点,你需要转义它,所以\.

在你的regex你需要转义dot(.) - "\." 或者在character class - "[.]"使用它character class - "[.]" ,因为它是正则expression式中的元字符,它匹配任何字符。

另外,您需要\w+而不是\w来匹配一个或多个单词。


现在,如果你想testing这个内容,那么split并不是你所需要的。 split将围绕test.this拆分你的string。 例如: –

 >>> re.split(r"\b\w+\.\w+@", s) ['blah blah blah ', 'gmail.com blah blah'] 

你可以使用re.findall : –

 >>> re.findall(r'\w+[.]\w+(?=@)', s) # look ahead ['test.this'] >>> re.findall(r'(\w+[.]\w+)@', s) # capture group ['test.this'] 

“在默认模式下,Dot(。)匹配除了换行符以外的任何字符,如果指定了DOTALL标志,则匹配任何包括换行符的字符。 (python Doc)

所以,如果你想评估点文学,我想你应该把它放在方括号内:

 >>> p = re.compile(r'\b(\w+[.]\w+)') >>> resp = p.search("blah blah blah test.this@gmail.com blah blah") >>> resp.group() 'test.this'