【发布时间】:2017-05-22 06:03:23
【问题描述】:
我想用 Python 的 Re 模块匹配特定的字母顺序。例如,我怎么能匹配像
- 鲍勃
- 阿拉
- 堵嘴
但不是
- aaa
- 巴尔
ie:我想要一个字母,然后是另一个,然后又是第一个。
对于两个不同的字母,我可以遍历所有 650 种可能性。然而,当匹配更大的字符串时,这是不可能的(而且也不是很好)。
【问题讨论】:
我想用 Python 的 Re 模块匹配特定的字母顺序。例如,我怎么能匹配像
但不是
ie:我想要一个字母,然后是另一个,然后又是第一个。
对于两个不同的字母,我可以遍历所有 650 种可能性。然而,当匹配更大的字符串时,这是不可能的(而且也不是很好)。
【问题讨论】:
您可以将此正则表达式与捕获组、前瞻和反向引用一起使用:
^([a-zA-Z])(?!\1)[a-zA-Z]\1$
^ # line start
([a-zA-Z]) # match any letter and capture it as group #1
(?!\1)[a-zA-Z] # match any letter but make sure it is not what have in group #1
\1 # match what we captured in capture group #1
$ # line end
【讨论】: