【问题标题】:Capture/group specific symbol under certain conditions with regex?在某些条件下使用正则表达式捕获/分组特定符号?
【发布时间】:2014-06-09 04:53:44
【问题描述】:

这是我的情况:

Text [b Text Here ] [b]

使用(\[b)(?:\s.*)(?:\s|)(\]) 它会跳过] 捕获-->[b]

我如何捕获 first [] after [b Text... 之前有任何字符/空格/数字?

更好地了解/理解here...

【问题讨论】:

    标签: regex sublimetext2 syntax-highlighting bbcode


    【解决方案1】:

    我相信你正在寻找的是一个懒惰的重复:

    .*?
    

    所以你的正则表达式看起来像

    (\[b)(?:\s.*?)(?:\s|)(\])
    

    否则,正则表达式是贪婪的,并且会消耗尽可能多的令牌。

    您可以在此处阅读有关懒惰和贪婪的更多信息:

    http://www.regular-expressions.info/repeat.html

    【讨论】:

    • 稍作修改就可以了。谢谢!
    【解决方案2】:

    你需要积极的向后看:

    (?<=b Text Here ).
    

    在这里演示:http://regex101.com/r/mL2hD6

    【讨论】:

      猜你喜欢
      • 2018-07-11
      • 1970-01-01
      • 2023-01-17
      • 2020-06-14
      • 2021-07-29
      • 2020-10-26
      • 2017-07-24
      • 1970-01-01
      • 2013-01-12
      相关资源
      最近更新 更多