基于上下文(?)RegEx搜索

fjnneemd  于 2023-06-07  发布在  其他
关注(0)|答案(2)|浏览(160)

我需要RegEx找到字符串的基础上,它的首字母
你好我有绳子

ABDADBADBADBABDABDA

我想程序找到字符串与掩码

А*А*А*A.....

其中“”是除“A”之外的任何符号的组,但是每个“”是相同的组
我试过了

/((A[^A]+)+A)/g

但和整条线都吻合

示例输入:

AxxAxxAbxAx

输出:

AxxAxxA

是否有任何预期的RegEx解决方案,或者我也必须使用一些代码?

cotxawn7

cotxawn71#

你需要使用反向引用。
对于所提供的示例,A(.*?)A(?:\1A)*应该可以做到这一点。
这里:

  • A匹配A
  • (.*?)匹配直到下一个A的所有内容并将其放入组#1,
  • (?:\1A)*匹配组#1的内容,然后是A任意次数。

演示here

x6h2sr28

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

相关问题