2014-06-23 43 views
3

我試圖做到同樣的事情,看到here如何匹配兩個字符串之間的所有文字多

即假設你有一個像文本:

<p>something</p> 

<!-- OPTIONAL --> 

<p class="sdf"> some text</p> 
<p> some other text</p> 

<!-- OPTIONAL END --> 

<p>The end</p> 

什麼是正則表達式會比賽:

<p class="sdf"> some text</p> 
<p> some other text</p> 

我設置一個live test here使用:

<!-- OPTIONAL -->(.*?)<!-- OPTIONAL END --> 

但它不正確匹配。此外,網頁上接受的答案並不適用於我。我錯過了什麼?

+0

所需的'/ s'修改爲(HTTP [在JavaScript中不可]: //www.regular-expressions.info/javascript.html) – Aprillion

+0

我修正了你的帖子的格式,所以我們可以看到你使用的實際正則表達式,並且我禁用了該部分的語法高亮顯示來減少混淆。我不知道爲什麼你在開角尖括號('\ <')之前有反斜槓,但他們沒有做任何有用的事情。 –

回答

5

不幸的是,RegExr依賴於JS RegExp實現,它不支持啓用您需要的標誌/修飾符的選項。

您正在尋找sDOTALL)修改迫使.匹配換行符序列。

Live Demo如果使用的是JavaScript,您可以使用此解決方法:

/<!-- OPTIONAL -->([\S\s]*?)<!-- OPTIONAL END -->/ 
+0

謝謝,這似乎與我想要的完全相反,即刪除中間的文本。有沒有辦法我可以扭轉正則表達式?偉大的網站btw。 – rtuner

+2

只需將您想要的組放在捕捉組中即可。 '(<! - OPTIONAL - >)。*?(<! - OPTIONAL END - >)' – hwnd

+0

哇,真好。謝謝@hwnd – rtuner

相關問題