我正在尝试创建一个Python正则表达式,当且仅当该字符串以相同的小写字母开头和结尾时才匹配字符串。以下似乎应该可以工作,但匹配每个字符串:
(?P<st>[a-z]).*(?P=st)$
任何建议都将受到赞赏。
答案 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