Python正则表达式捕获重用

时间:2015-05-09 05:23:38

标签: python regex

我正在尝试创建一个Python正则表达式,当且仅当该字符串以相同的小写字母开头和结尾时才匹配字符串。以下似乎应该可以工作,但匹配每个字符串:

(?P<st>[a-z]).*(?P=st)$

任何建议都将受到赞赏。

2 个答案:

答案 0 :(得分:3)

^([a-z]).*\1$

这需要back reference。请参阅演示。

https://regex101.com/r/iV6mP5/5#python

import re
p = re.compile(r'^([a-z]).*\1$', re.MULTILINE)
test_str = "a sdf sd fdsf sd a\nsdfdsf ASDSDSAD@#$@#ASDASDs\nsadasd Wdsda"

re.findall(p, test_str)

答案 1 :(得分:0)

我意识到你要求一个正则表达式,但是再一次,很多人都会问,因为他们认为这是做这些事情的唯一方法。

>>> for s in ('test', 'foo', 'Test', ''):
    if s and s[0].islower() and s[0] == s[-1]:
        print('good:', s)

good: test