Javascript Regex:如何指定字符串的选项结尾

时间:2014-07-09 22:48:28

标签: javascript regex

所以说我有一个元素,我试图抓住它看起来像(重要的部分是结束)

<inline id="shortcode0-container" class="shortcode-container linkContainer" data-content="ANNOTATION "><inline class="shortcode-header hidden"><ul class="shortcode-menu nav"><li class="shortcode-label"><a href="#">Annotation: Jordan</a></li><li class="divider-vertical"></li><li class="shortcode-unlink"><a href="#">unlink</a></li></ul></inline><inline class="shortcode" id="shortcode0"><div class="shortcode-preview">
<a href="#">Jordan</a>
</div></inline></inline>&nbps; blah blah blah text here

有时&amp; nbsp?不在那里。我不希望有两种模式来捕捉这个元素的结尾。这是迄今为止我所得到的

/(<inline.*?\n.*?\n.*?(<\/inline><\/inline>&nbsp;|<\/inline><\/inline>))/gm

现在我不得不使用

/(<inline.*?\n.*?\n.*?<\/inline><\/inline>)/gm

/(<inline.*?\n.*?\n.*?&nbsp;)/gm

有关如何组合它们的任何线索?

提前致谢

修改

感谢Bergi,不得不稍微修改他的回复。已向?群组添加&nbsp;,因为如果&nbsp;不在那里,则无法看到任何内容

/(<inline.*?\n.*?\n.*?<\/inline><\/inline>(?:&nbsp;?)?)/gm

1 个答案:

答案 0 :(得分:4)

听起来你想要一个简单的optional token(可能是non-capturing group):

/(<inline.*?\n.*?\n.*?<\/inline><\/inline>(?:&nbsp;)?)/gm
#                                         ^^^      ^^