正则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'