查找出现1-3次的所有字符

时间:2018-07-30 15:47:33

标签: regex

我正在这里寻找正则表达式。我有部分解决方案,但必须完成。我在这里寻找葬礼B,但我想寻找[A-Z]并在相应的地方使用反向引用:

我尝试过的事情

^[^B]*(B)(?!(?:[^B]*B){3})查找第一个'B'(如果出现1-3次)。 regex101

  • 匹配非B 0-n次
  • 匹配第一个B
  • 如果前面有3个(或更多)B,则不匹配

应该是什么

我正在寻找的不仅仅是匹配B,而是匹配[A-Z]-如果我尝试^[^\1]*([A-Z])(?!(?:[^\1]*\1){3})(将匹配的B[A-Z]替换并反向引用) )

问题解决

这里的问题。 [^\1]似乎不起作用。

我需要否定反向引用并对其进行量化。它不想做的两件事:D

所需结果(示例)

AAA结果[A],因为A[A-Z],并且在字符串中不超过3次

AABB结果[A,B]是因为AB不超过3次

ABABAABB

123AABBAA的结果[B]是因为[A-Z]且不超过3次

编辑

可能有用的方法:(?:(?<=(?!\1)))*代替[^\1]* regex101

种类繁多的作品在A上返回(A)AA,在AAAA上没有匹配项,但不会匹配BAAA(应该返回[a,b]

0 个答案:

没有答案