匹配标记中的所有指定单词

时间:2014-10-03 07:08:03

标签: regex vba vbscript

我希望匹配以下模式:匹配括号内和<b></b>标记内的所有大写字母。

示例:

(ABC) 'must extract none
<b>(ABC) 'must extract none
<b>(ABC)(CDE)(EFG)</b> 'must extract ABC, CDE and EFG
<b> shr (ABC) апаd (CDE)   lgsgs   </b> 'must extract ABC and CDE
<b>A</b>(ABCA)<b>(ABCB)</b> 'must extract only ABCB
<b>A</b>(ABCA)<b>dada(ABCB)wsg</b> 'must extract only ABCB
<b>AB</b>(ABCA)<b>BC</b>(ABCB) 'must extract none

我尝试使用以下模式,但它只匹配第一次出现:

"(<b>(?:(?!<\/?b>).)*?\()([A-Z]+)(\)(?:(?!<\/?b>).)*<\/b>)"

1 个答案:

答案 0 :(得分:2)

您可以尝试下面的正则表达式。

(?:[A-Z]+(?=\)))(?=(?:(?!<\/?b>).)*<\/b>)
  • (?:[A-Z]+(?=\)))仅当一个或多个大写字母后跟一个结束)括号时,它才会匹配。

  • (?=(?:(?!<\/?b>).)*<\/b>)并且必须跟随任何字符,但不能打开或关闭<b>标记零次或多次,然后必须后跟关闭</b>标签

DEMO

OR

就像这样,

(?:[A-Z]+(?=\)))(?=[^<>]*<\/b>)

DEMO