使用正则表达式查找两个字符串之间的多个匹配项

莫森·海里(Mohsen Haeri)

想象一下,我有一个像这样的字符串:

c x c x A c x c x c B c x c x

我想找到介于“ A”和“ B”之间的任何“ c”字符。因此,在此示例中,我需要获得3个匹配项。

我知道我可以使用先行和先行令牌。所以我用了这个正则表达式:

(?<=A).*c.*(?=B)

但是,它得到了A和B之间的所有刺痛:c x c x c作为结果。

而且,如果我拆下.*零件,将完全没有匹配项。

我在这里举了一个例子这样您就可以看到结果。

维克多·史翠比维

这里有两种常见的情况:1)AB不同的单个字符串,2)AB不同的多字符字符串。

场景1

您可以使用否定的字符类:

(?:\G(?!^)|A)[^AB]*?\Kc(?=[^AB]*B)

请参阅此正则表达式演示细节:

  • (?:\G(?!^)|A)-A或上一次成功的比赛结束
  • [^AB]*?-除A以外的任何零个或多个字符B,请尽可能少
  • \K -match reset运算符,该运算符将丢弃迄今为止在整体内存匹配缓冲区中所有匹配的文本
  • c-c字符/字符串
  • (?=[^AB]*B)-必须紧随其后的是零个或多个字符(而不是A和)B,然后B紧随当前位置右侧的char。

方案2

如果AB是多字符字符串的占位符,例如ABCBCEc则使用某种模式c\d+(匹配c并在其后加上一个或多个数字)

(?s)(?:\G(?!^)|ABC)(?:(?!ABC).)*?\Kc\d+(?=.*?BCE)

请参阅此正则表达式演示细节:

  • (?s) -DOTALL修饰符,使正则表达式引擎与匹配任何字符 .
  • (?:\G(?!^)|ABC)-ABC或上一次成功的比赛结束
  • (?:(?!ABC).)*?-0次或多次的任何不启动ABC字符序列字符
  • \K -匹配重置运算符
  • c\d+-c和一个或多个数字
  • (?=.*?BCE)-尽可能少的零个或多个字符,后跟BCE

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用正则表达式查找两个字符串之间的所有匹配项

来自分类Dev

使用正则表达式查找两个字符串之间的所有匹配项

来自分类Dev

正则表达式,用于查找两个字符串之间的匹配项(复数)

来自分类Dev

正则表达式可在两个字符串之间找到多个匹配项

来自分类Dev

使用Ruby正则表达式查找两个字符串之间的所有匹配项

来自分类Dev

使用Ruby正则表达式查找两个字符串之间的所有匹配项

来自分类Dev

正则表达式查找两个字符之间的字符串

来自分类Dev

正则表达式匹配两个字符之间的字符串

来自分类Dev

如何在两个字符串之间使用正则表达式匹配并查找原始文件,并获取两个字符串之间的整个字符串?

来自分类Dev

两个字符串之间的python正则表达式匹配

来自分类Dev

两个字符串数组之间的正则表达式匹配

来自分类Dev

使用正则表达式查找Javascript中两个字符串之间的差异

来自分类Dev

通过使用正则表达式匹配在两个字符串之间选择文本

来自分类Dev

Bash正则表达式,两个字符串之间的匹配字符串

来自分类Dev

正则表达式-匹配两个字符串之间的字符串

来自分类Dev

正则表达式,以匹配其他两个字符串之间的字符串

来自分类Dev

正则表达式查找两个字符之间的内部匹配

来自分类Dev

查找包含在两个字符之间的字符串的正则表达式

来自分类Dev

正则表达式匹配文档中两个字符串之间的所有字符

来自分类Dev

正则表达式:匹配两个字符串之间的所有字符

来自分类Dev

正则表达式匹配和替换字符串之间的两个字符

来自分类Dev

正则表达式忽略两个字符串之间的字符?

来自分类Dev

使用正则表达式获取两个字符串之间的子字符串

来自分类Dev

使用正则表达式提取两个字符串之间的字符串

来自分类Dev

正则表达式模式匹配并获得两个字符串

来自分类Dev

正则表达式匹配逗号分隔、多行和两个字符串之间的单词

来自分类Dev

正则表达式匹配两个字符串之间的无限重复模式

来自分类Dev

正则表达式在两个字符串之间获取文本

来自分类Dev

两个字符串python之间的正则表达式文本

Related 相关文章

  1. 1

    使用正则表达式查找两个字符串之间的所有匹配项

  2. 2

    使用正则表达式查找两个字符串之间的所有匹配项

  3. 3

    正则表达式,用于查找两个字符串之间的匹配项(复数)

  4. 4

    正则表达式可在两个字符串之间找到多个匹配项

  5. 5

    使用Ruby正则表达式查找两个字符串之间的所有匹配项

  6. 6

    使用Ruby正则表达式查找两个字符串之间的所有匹配项

  7. 7

    正则表达式查找两个字符之间的字符串

  8. 8

    正则表达式匹配两个字符之间的字符串

  9. 9

    如何在两个字符串之间使用正则表达式匹配并查找原始文件,并获取两个字符串之间的整个字符串?

  10. 10

    两个字符串之间的python正则表达式匹配

  11. 11

    两个字符串数组之间的正则表达式匹配

  12. 12

    使用正则表达式查找Javascript中两个字符串之间的差异

  13. 13

    通过使用正则表达式匹配在两个字符串之间选择文本

  14. 14

    Bash正则表达式,两个字符串之间的匹配字符串

  15. 15

    正则表达式-匹配两个字符串之间的字符串

  16. 16

    正则表达式,以匹配其他两个字符串之间的字符串

  17. 17

    正则表达式查找两个字符之间的内部匹配

  18. 18

    查找包含在两个字符之间的字符串的正则表达式

  19. 19

    正则表达式匹配文档中两个字符串之间的所有字符

  20. 20

    正则表达式:匹配两个字符串之间的所有字符

  21. 21

    正则表达式匹配和替换字符串之间的两个字符

  22. 22

    正则表达式忽略两个字符串之间的字符?

  23. 23

    使用正则表达式获取两个字符串之间的子字符串

  24. 24

    使用正则表达式提取两个字符串之间的字符串

  25. 25

    正则表达式模式匹配并获得两个字符串

  26. 26

    正则表达式匹配逗号分隔、多行和两个字符串之间的单词

  27. 27

    正则表达式匹配两个字符串之间的无限重复模式

  28. 28

    正则表达式在两个字符串之间获取文本

  29. 29

    两个字符串python之间的正则表达式文本

热门标签

归档