Python正则表达式匹配字母序列

2024-09-26 18:10:54 发布

您现在位置:Python中文网/ 问答频道 /正文

我想做一个正则表达式来匹配“AGGH”,“TIIK”,“6^?”或者别的什么,但不是“AGGA”,“ABCD”。最重要的是字母的样式。有没有一种方法可以要求你拥有或从未拥有过的角色?在


Tags: 方法角色字母样式abcdagghaggatiik
3条回答

为什么不直接使用子字符串搜索?在

if "AGGH" in myStr:
    print "Success!"

您可以像这样提取字符串的模式:

def pattern(s):
    d = {}
    return [d.setdefault(c, len(d)) for c in s]

示例:

^{pr2}$

此函数使比较两个字符串的模式变得非常简单。在

有一种方法可以使用regex来实现:

import re
strs=("AGGH", "TIIK", "6^^?" ,"AGGA", "ABCD")
p = re.compile('^(?P<one>.)(?P<two>.)(?P=two)(?!(?P=one)).$')
for s in strs:
    print s, p.match(s)

输出:

^{pr2}$

虽然很难看,但很管用。;)美元符号前的句点是必需的,如果要匹配到字符串的末尾,它将消耗(?)扫描的实际字符?!(?P=one),这是一个“否定的前瞻性断言”。在

相关问题 更多 >

    热门问题