所以说我有一个要尝试的元素看起来像(重要的是结尾)

<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


有时&nbsp?不在那里。我不想有2个模式来捕获此元素的结尾。这是我到目前为止所得到的

/(<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

最佳答案

听起来像您想要一个简单的optional token(也许是non-capturing group):

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

关于javascript - Javascript正则表达式:如何指定字符串的选项结尾,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24664867/

10-13 08:13