PCre2grep 多行正则表达式

PCre2grep 多行正则表达式

我正在尝试创建一个正则表达式来将文本文件的第一个 html 与以下内容相匹配:

garbage
garbage
§<html class="test1">
<div>test</div></html>§
garbage
garbage
§<html class="test2>
<div>test</div></html>§
garbage
garbage
§<html class="test3">
<div>test</div></html>§
garbage
garbage

首先我在 regex101.com 上尝试了类似的东西

<html.*?html>

使用 PCRE2 和单线模式,工作正常。然后我在 Windows 上使用 Notepad++ 尝试了它,并启用了“点匹配新行”选项,它在那里也可以正常工作。

现在我尝试在 Arch Linux 上使用 pcre2grep 做同样的事情,我尝试过这个正则表达式:

pcre2grep -o '(?s)<html.*?html>' test.txt

但它不起作用,我不知道为什么,因为根据我的理解,“(?s)”修饰符应该启用 PCRE2_DOTALL。如何使用 pcre2grep 创建等效的正则表达式?

相关内容