我对正则表达式的领域非常陌生。最近,我在这个网站上搜索了适用于PowerShell的正则表达式,以便匹配HTML标签,然后我找到了以下内容。
$content -match '(?s)<table[^>]+width\s*=\s*"300px"\s*.*?>(.*?)</table>'
我一直在寻找所有正则表达式参考书和资料(Perl 和 Powershell)中关于 (?s) 的含义,但没有找到。它看起来像是一个条件,但缺少了 then 部分。
有人能指引我正确的方向吗?
谢谢
我对正则表达式的领域非常陌生。最近,我在这个网站上搜索了适用于PowerShell的正则表达式,以便匹配HTML标签,然后我找到了以下内容。
$content -match '(?s)<table[^>]+width\s*=\s*"300px"\s*.*?>(.*?)</table>'
我一直在寻找所有正则表达式参考书和资料(Perl 和 Powershell)中关于 (?s) 的含义,但没有找到。它看起来像是一个条件,但缺少了 then 部分。
有人能指引我正确的方向吗?
谢谢
根据正则表达式参考网站的说法:
在其余的正则表达式中打开“点匹配换行符”选项。(旧版的正则表达式可能会在整个正则表达式中打开此选项。)
(?s)
会很有用,它会打开“单行模式”,例如正则表达式abc.def
会匹配字符串"abcXdef",其中的"X"可以是除换行符以外的任意字符。而正则表达式(?s)abc.def
会匹配"abcXdef",其中的"X"可以是任意字符,包括换行符。 - undefined"?意味着1或0个匹配。"?s"使点匹配换行符。句点通常是通配符,可匹配任何字符,但保存换行符。
"