繁体   English   中英

多行正则表达式不匹配

[英]Multiline regular expression not matching

我有一个正则表达式来获取HTML注释之间的所有数据。 以下是我的正则表达式和HTML部分。

Dim rgx As New Regex("<!-- START data-contentid='([0-9]+)' -->((\s|.)*?)<!-- END data-contentid='([0-9]+)' -->", RegexOptions.Multiline Or RegexOptions.IgnoreCase)

此正则表达式正在运行,它将返回2个包含所需组的结果。 奇怪的是:

如果我将以下内容更改为((\\s|.)*?)到此(.*?)则我的正则表达式将停止工作,而. 代表任何字符。

任何有关OR正则表达式为何起作用但为什么DOT正则表达式不起作用的线索?

<!-- START data-contentid='1151' -->
<div class="dyn-content content" data-contentid="1151">
The content

</div>
<!-- END data-contentid='1151' --><br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
    AABB
<!-- START data-contentid='866' -->
<div class="dyn-content content" data-contentid="866">
    <h1></h1>
    ASBCSDFGGGGGGGGGGGGGGGGGGGGGGGGGG</div>
<!-- END data-contentid='866' -->

RegexOptions.Multiline使正则表达式每行匹配一行。

您的意思是RegexOptions.SingleLine

MSDN

多行模式。 更改^和$的含义,以便它们分别在任何行的开头和结尾处匹配,而不仅仅是整个字符串的开头和结尾。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM