民间,
我必须匹配以下模式:
首字母必须为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
由于
答案 0 :(得分:1)
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