26

我对正则表达式领域很陌生。最近我搜索了允许我匹配 html 标记的 Powershell 的正则表达式,我在这个站点中找到了以下内容。

$content -match '(?s)<table[^>]+width\s*=\s*"300px"\s*.*?>(.*?)</table>'

我一直在寻找所有正则表达式参考和书籍(Perl 和 Powershell)以了解 (?s) 的含义,但没有运气。它看起来像一个条件,但缺少 then 部分。

有人可以为我指出正确的方向吗?

谢谢

4

2 回答 2

25

根据正则表达式参考站点

为正则表达式的其余部分打开“点匹配换行符”。(旧的正则表达式风格可能会为整个正则表达式打开它。)

于 2012-06-07T08:07:16.907 回答
2

“?” 表示 1 或 0 个匹配项。"?s" 启用点匹配换行符。句点通常是一个通配符,可以匹配任何字符,保存换行符。

于 2012-06-07T08:10:59.033 回答