使用正则表达式在特定条件下捕获/分组特定符号?

时间:2014-06-09 04:53:45

标签: regex sublimetext2 syntax-highlighting bbcode

以下是我的情况:

  

文字[b文字在这里]< - 捕捉第一个"]",而不是 - > [b]

使用(\[b)(?:\s.*)(?:\s|)(\])跳过]会抓取-->[b]

如何在{/ 1}之后 [] 以及任何字符/空白/数字之前捕获 [b Text...或{{1}}

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

2 个答案:

答案 0 :(得分:0)

你需要一个积极的外观:

(?<=b Text Here ).

演示:http://regex101.com/r/mL2hD6

答案 1 :(得分:0)

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

.*?

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

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

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

你可以在这里阅读更多关于懒惰和贪婪的内容:

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