我正在尝试匹配以下形式的字符串:
itrti
ititrtiti
itititrtititi
但不是
itrtiti
ititrti
其中“r”两侧的图案长度相同。
我可以写(我想):
(it)+r(ti)+
但这将允许每一侧有不同数量的字符。
测试字符串是否对称(=回文),以及从头到尾的整个字符串是否与您感兴趣的正则表达式匹配。
import re
strs = ['itrti',
'ititrtiti',
'itititrtititi',
'itrtiti',
'ititrti']
for s in strs:
if s == s[::-1] and re.search('^(it)+r(ti)+$', s):
print(f'ok: {s}')
else:
print(f'not ok: {s}')
打印:
ok: itrti
ok: ititrtiti
ok: itititrtititi
not ok: itrtiti
not ok: ititrti