2017-04-11 88 views
1

我只是想要刪除[和看起來像HTML標籤的所有內容之間的換行符,或者反之,標記和]正則表達式不工作在C#中(但在其他環境中工作)

想出了一個正則表達式new Regex(@"(\[{1}[\s\S](<[^>]*>)|(<[^>]*>)[\s\S]\]{1})", RegexOptions.Multiline)

我想,這是可行的,因爲here它看起來不錯。

但是,當我在C#(you can test it here)嘗試它 - 什麼都不要。

如何使它工作?怎麼了?

+0

,因爲它使用CRLF換行符風格它不會在regexstorm.net工作。第一個'[\ s \ S]'只匹配CR,而不是LF。另外,'{1}'和'RegexOptions.Multiline'是多餘的,可以刪除。 –

+0

@WiktorStribiżew嗯,從來不知道 – DanilGholtsman

回答

0

可以使用簡化它:

new Regex(@"(\[.{1,2}(<[^>]*>)|(<[^>]*>).{1,2}\])", RegexOptions.Singleline) 
+0

謝謝,這就是我一直在尋找! – DanilGholtsman

相關問題