regex 正则表达式匹配对称(回文)文本模式[重复]

8qgya5xd  于 12个月前  发布在  其他
关注(0)|答案(1)|浏览(116)

此问题已在此处有答案

How does this PCRE pattern detect palindromes?(2个答案)
23天前关闭
我正在尝试匹配以下形式的字符串:

itrti
ititrtiti
itititrtititi

但不

itrtiti
ititrti

其中在“r”的任一侧上的图案的长度相同。
我可以写(我想):

(it)+r(ti)+

但这将允许在每一侧上有不同数量的字符。

chhqkbe1

chhqkbe11#

测试字符串是否是对称的(=回文),以及整个字符串从开始到结束是否与您感兴趣的正则表达式匹配。

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

相关问题