匹配对称(回文)文本模式的正则表达式

问题描述 投票:0回答:1

我正在尝试匹配以下形式的字符串:

itrti
ititrtiti
itititrtititi

但不是

itrtiti
ititrti

其中“r”两侧的图案长度相同。

我可以写(我想):

(it)+r(ti)+

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

python regex regex-lookarounds
1个回答
0
投票

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

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
© www.soinside.com 2019 - 2024. All rights reserved.