如何匹配两个字符串之间的所有文本多行

rtu*_*ner 4 regex

我正在努力完成与此处所见相同的事情:

即假设你有一个像这样的文字:

<p>something</p>

<!-- OPTIONAL -->

<p class="sdf"> some text</p>
<p> some other text</p>

<!-- OPTIONAL END -->

<p>The end</p>
Run Code Online (Sandbox Code Playgroud)

什么是匹配的正则表达式:

<p class="sdf"> some text</p>
<p> some other text</p>
Run Code Online (Sandbox Code Playgroud)

我在这里设置了一个实时测试:

<!-- OPTIONAL -->(.*?)<!-- OPTIONAL END -->
Run Code Online (Sandbox Code Playgroud)

但它没有正确匹配.此页面上接受的答案也不适用于我.我错过了什么?

hwn*_*wnd 15

不幸的是,RegExr依赖于JS RegExp实现,它不支持启用所需标志/修饰符的选项.

您正在寻找s(DotAll)修饰符强制.匹配换行序列.

如果您使用的是JavaScript,则可以使用此解决方法:

/<!-- OPTIONAL -->([\S\s]*?)<!-- OPTIONAL END -->/
Run Code Online (Sandbox Code Playgroud)

  • 只需将捕获组放在您想要的周围.`(<! - OPTIONAL - >).*?(<! - OPTIONAL END - >)` (2认同)