匹配具有可变左右定界符的字符串

马尔辛·纳比亚韦克

这个问题很容易。我想在开头的一些字符串和结尾的一些字符串之间匹配任何内容。末尾的字符串应与开头的适当字符串匹配

假设我要匹配介于[]{之间的所有内容}

可以使用的第一个正则表达式是:

/[{\[](.*)[}\]]/gmU

但是,这有一个问题。当主题是:

{aa} werirweiu [ab] wrewre [ac}

[ac}匹配,但不应该匹配。

它可以很容易地更改为:

/\[(.*)\]|\{(.*)\}/gmU

问题就解决了。

但是,如果(.*)要复杂得多并且起点和终点例如是10,又又会有点复杂(不是一个字符而是很多),该怎么办?然后,使用上述规则,(.*)应将整个重复重复10次,并且难以辨认。

有什么办法可以使开头与结尾匹配?例如,我想使用类似于

/(aa|bb)(.*)(cc|ddd)/gmU告诉匹配必须以主题字符串开头aa和结尾,cc或者以bb结尾和结尾,ddd并且匹配aaxx1cc bbxx2ddd aaxx3ddd bbxx4cc在主题字符串中进行,xx1并且xx2无需(.*)在该正则表达式中重复很多次,并且记住上面示例中的开头和结尾可能不止2个。

zx81

使用条件

在我看来,这是一个使用条件句的好地方。此正则表达式将起作用:

(?:(\[)|({)).*?(?(1)\])(?(2)})

Regex演示中查看匹配和失败的内容

其他种类的分隔符

这是易于扩展:例如,下面的模式将匹配之间分隔的字符串STARTEND之间,或者<---->之间,或者==::==

(?:(START)|(<--)|(==:)).*?(?(1)END)(?(2)-->)(?(3):==)

请参阅Regex演示

说明

  • 非捕获组(?:(\[)|({))与开头定界符匹配,即
  • [(\[)捕捉到第1组
  • 要么 |
  • {({)捕捉到第2组
  • .*? 懒惰地匹配到...
  • (?(1)\]) 如果设置了组1,我们匹配 ]
  • (?(2)}) 如果设置了第2组,则我们匹配 }

参考

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

具有多个定界符的字符串流

来自分类Dev

连接具有不同最后定界符的字符串

来自分类Dev

javascript:将字符串拆分为具有不同定界符的数组

来自分类Dev

Bash-比较具有不同定界符的字符串的简便方法?

来自分类Dev

将具有嵌套定界符的字符串转换为映射

来自分类Dev

如何删除具有定界符的字符串中的重复值

来自分类Dev

具有4个定界符的TSQL解析字符串

来自分类Dev

拆分没有通用定界符的字符串

来自分类Dev

似乎没有定界符的字符串解析

来自分类Dev

解析带有多个定界符的字符串

来自分类Dev

使用多字符定界符分割字符串

来自分类Dev

C ++通过定界符分割字符串并保持定界符在结果中

来自分类Dev

使用默认定界符与用户定义定界符进行字符串拆分

来自分类Dev

按定界符分割字符串并包含定界符-Common Lisp

来自分类Dev

用多个定界符分割字符串,忽略重复的定界符

来自分类Dev

在C ++中使用多个定界符(包括定界符)分割字符串

来自分类Dev

用多个定界符分割字符串,并忽略引号中的定界符javascript

来自分类Dev

使用保存定界符将字符串按多个定界符进行拆分

来自分类Dev

使用各种定界符分割字符串,同时保留定界符

来自分类Dev

sh-用定界符分割字符串

来自分类Dev

根据多个定界符分割字符串

来自分类Dev

使用sed用定界符分割字符串

来自分类Dev

根据定界符分割字符串

来自分类Dev

python根据定界符查找子字符串

来自分类Dev

python根据定界符查找子字符串

来自分类Dev

拆分字符串并忽略引号内的定界符

来自分类Dev

在python中的定界符'\'处分割字符串

来自分类Dev

使用多个嵌套定界符分割字符串

来自分类Dev

连接字符串而不重复定界符

Related 相关文章

  1. 1

    具有多个定界符的字符串流

  2. 2

    连接具有不同最后定界符的字符串

  3. 3

    javascript:将字符串拆分为具有不同定界符的数组

  4. 4

    Bash-比较具有不同定界符的字符串的简便方法?

  5. 5

    将具有嵌套定界符的字符串转换为映射

  6. 6

    如何删除具有定界符的字符串中的重复值

  7. 7

    具有4个定界符的TSQL解析字符串

  8. 8

    拆分没有通用定界符的字符串

  9. 9

    似乎没有定界符的字符串解析

  10. 10

    解析带有多个定界符的字符串

  11. 11

    使用多字符定界符分割字符串

  12. 12

    C ++通过定界符分割字符串并保持定界符在结果中

  13. 13

    使用默认定界符与用户定义定界符进行字符串拆分

  14. 14

    按定界符分割字符串并包含定界符-Common Lisp

  15. 15

    用多个定界符分割字符串,忽略重复的定界符

  16. 16

    在C ++中使用多个定界符(包括定界符)分割字符串

  17. 17

    用多个定界符分割字符串,并忽略引号中的定界符javascript

  18. 18

    使用保存定界符将字符串按多个定界符进行拆分

  19. 19

    使用各种定界符分割字符串,同时保留定界符

  20. 20

    sh-用定界符分割字符串

  21. 21

    根据多个定界符分割字符串

  22. 22

    使用sed用定界符分割字符串

  23. 23

    根据定界符分割字符串

  24. 24

    python根据定界符查找子字符串

  25. 25

    python根据定界符查找子字符串

  26. 26

    拆分字符串并忽略引号内的定界符

  27. 27

    在python中的定界符'\'处分割字符串

  28. 28

    使用多个嵌套定界符分割字符串

  29. 29

    连接字符串而不重复定界符

热门标签

归档