我需要RegEx找到字符串的基础上,它的首字母你好我有绳子
ABDADBADBADBABDABDA
我想程序找到字符串与掩码
А*А*А*A.....
其中“”是除“A”之外的任何符号的组,但是每个“”是相同的组我试过了
/((A[^A]+)+A)/g
但和整条线都吻合
示例输入:
AxxAxxAbxAx
输出:
AxxAxxA
是否有任何预期的RegEx解决方案,或者我也必须使用一些代码?
cotxawn71#
你需要使用反向引用。对于所提供的示例,A(.*?)A(?:\1A)*应该可以做到这一点。这里:
A(.*?)A(?:\1A)*
A
(.*?)
(?:\1A)*
演示here。
x6h2sr282#
你可以使用backreference:
import re s = 'ABDADBADBADBABDABDA' out = [m.group(0) for m in re.finditer(r'(?:(A[^A]+)\1)+A', s)]
输出:['ADBADBA', 'ABDABDA']regex demo
['ADBADBA', 'ABDABDA']
2条答案
按热度按时间cotxawn71#
你需要使用反向引用。
对于所提供的示例,
A(.*?)A(?:\1A)*
应该可以做到这一点。这里:
A
匹配A
,(.*?)
匹配直到下一个A
的所有内容并将其放入组#1,(?:\1A)*
匹配组#1的内容,然后是A
任意次数。演示here。
x6h2sr282#
你可以使用backreference:
输出:
['ADBADBA', 'ABDABDA']
regex demo