sublime text regex多个参数

时间:2014-02-19 16:58:10

标签: regex sublimetext2

我想在Sublime Text中使用正则表达式Parameter1。其他参数将不会被使用。

初始标签:

<description><![CDATA[<b>Parameter1</b></br></br> 
This not to be copied and can be long]]></description>

此表达式在Regex Sublime Text ...

<description><!\[CDATA\[<b>(\w+)</b></br></br>(\w*)\]\]</description>

无法找到我需要的东西(当我到达它时停止寻找)

1 个答案:

答案 0 :(得分:1)

你的正则表达式与测试字符串不匹配 单词字母之间有空格 它也不会像标点符号那样匹配非单词字母。

以下是两个正则表达式

1。这只是为了匹配您的测试字符串。

 # <description>\s*<!\[CDATA\[\s*<b>([\s\w]+)</b>\s*</br>\s*</br>([\s\w]*)\]\]\s*</description>

 <description>
 \s* 
 <!\[CDATA\[
 \s* 
 <b>
 (                                 # (1)
      [\s\w]+ 
 )
 </b> \s* </br> \s* </br>
 (                                 # (2)
      [\s\w]* 
 )
 \]\]
 \s* 
 </description>

2。如果您的引擎支持前瞻断言,则应该如何操作。

 # (?s)<description>\s*<!\[CDATA\[\s*<b>((?:(?!\]\]|\s*</b>).)+?)\s*</b>\s*</br>\s*</br>\s*((?:(?!\s*\]\]).)*)\s*\]\]\s*</description>

 (?s)
 <description>
 \s* 
 <!\[CDATA\[
 \s* 
 <b>
 (                                 # (1)
      (?:
           (?! \]\] | \s* </b> )
           . 
      )+?
 )
 \s* </b> \s* </br> \s* </br> \s* 
 (                                 # (2)
      (?:
           (?! \s* \]\] )
           . 
      )*
 )
 \s* 
 \]\]
 \s* 
 </description>