Folks,
我必须匹配以下模式:
第一个字母必须是 N
第二个除 P 之外的任意字母
第三个必须是S或T
第四个是除 P 之外的任何字母。
字符串只有大写字母,没有数字、空格等。
所以使用 python 这就是我到目前为止得到的:
import re
strRegex = r"N[^P][ST][^P]"
objRegex = re.compile(strRegex)
print objRegex.findall('NNSTL')
这将打印:NNST
我期望的是:NNST 和 NSTL
Thanks
re.findall 只会返回不重叠的匹配项
尝试这个:
>>> strRegex = r"N[^P][ST][^P]"
>>> regex = compile(strRegex)
>>> def newfind(regex,str,pos=0):
... result=regex.search(str,pos)
... if result is None: return []
... else: return [result.group()]+newfind(regex,str,result.start()+1)
...
>>>
>>> newfind(regex,'NNSTL')
['NNST', 'NSTL']
参考:https://mail.python.org/pipermail/tutor/2005-September/041126.html https://mail.python.org/pipermail/tutor/2005-September/041126.html
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)