簡體   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