Dew*_*rld 6 python regex python-2.7
这是我想在python2.7上尝试的原始正则表达式
在我的python2.7命令行中,我的代码
>>> import re
>>> r = r'(\.+)'
>>> str = 'hello... how are you? Im fine...'
>>> type(re.match(r, str, re.I)) # a mismatch
<type 'NoneType'>
Run Code Online (Sandbox Code Playgroud)
我应该做什么修改才能在python上运行?
re.match尝试在字符串的开头匹配.因为它在开始时不匹配,所以re.match返回None.使用re.search(返回第一个匹配,字符串中的任何位置)或re.finditer(返回产生所有匹配的迭代器):
>>> import re
>>> r = r'(\.+)'
>>> data = 'hello... how are you? Im fine...'
Run Code Online (Sandbox Code Playgroud)
re.match>>> re.match(r, data, re.I) # None
Run Code Online (Sandbox Code Playgroud)
re.search>>> m = re.search(r, data, re.I) # a single match
>>> m
<_sre.SRE_Match object at 0x12345678>
>>> m.group(1)
'...'
Run Code Online (Sandbox Code Playgroud)
re.finditer>>> for m in re.finditer(r, data, re.I): # all matches
... print(m.group(1))
Run Code Online (Sandbox Code Playgroud)
输出
...
...
Run Code Online (Sandbox Code Playgroud)
str,因为它会影响内置变量.我已将其重命名为data.re.I这里(我在示例中保留了它),因为(\.+)不匹配关心案例的任何字符(.不是一个正确的字母)