繁体   English   中英

在模式中匹配RegEx模式

[英]Match RegEx pattern within pattern

伙计们,

我必须匹配以下模式:

第一个字母必须是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

谢谢

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM