如何捕获没有周围搜索条件字符的搜索字符?

时间:2013-09-20 17:09:10

标签: regex sublimetext2

我有一个看起来像这样的字符串:

Hello Hello Hello<br>Hello Hello <br> hello hello

我正在尝试使用正则表达式捕获被字符包围的<br>。因此,从上面的示例字符串中,我应该只捕获第一个<br>实例,而不是第二个实例。我试过用这个:

\w(<br/>)\w

但我抓住了这个目的:o<br>H

如何才能让正则表达式仅捕获<br>而不捕获环绕声字符?

1 个答案:

答案 0 :(得分:1)

你可以使用环视:

(?<=\w)<br>(?=\w)

(我不确定/在你的正则表达式中做了什么)

虽然大多数语言都允许您提取放在括号中的内容,但在这种情况下,您可以保留正则表达式,只需提取第一个组(这对应于括号中的第一个(也是唯一的))。 / p>

解释,this site提供:

NODE                     EXPLANATION
--------------------------------------------------------------------------------
  (?<=                     look behind to see if there is:
--------------------------------------------------------------------------------
    \w                       word characters (a-z, A-Z, 0-9, _)
--------------------------------------------------------------------------------
  )                        end of look-behind
--------------------------------------------------------------------------------
  <br>                     '<br>'
--------------------------------------------------------------------------------
  (?=                      look ahead to see if there is:
--------------------------------------------------------------------------------
    \w                       word characters (a-z, A-Z, 0-9, _)
--------------------------------------------------------------------------------
  )                        end of look-ahead