2010-05-06 47 views
2

我有一個正則表達式("(<lof<).*?(>>)"),可以在單行輸入中正常工作和匹配。但是,如果輸入在兩個()部分之間包含換行符,則它根本不匹配。在這種情況下,忽略任何換行符的最好方法是什麼?在換行符上匹配Regex?

回答

4

啓用了RegexOptions.Singleline選項創建正則表達式對象:

指定單行模式。更改點(。)的含義,使其匹配每個字符(而不是除\ n之外的每個字符)。

+1

+1另外,雖然可能沒有那麼快,你可以使用'[\ S \ S]'代替'.'這將使遇到一些新行匹配並仍然使用相同的正則表達式中的點。 – Tomalak 2010-05-06 15:45:24

+0

@Tomalak:還有內聯標誌符號:'>' - 在那些parens中,點符合換行符;在別處它不會。 – 2010-05-06 19:38:53

+0

@Alan:真的,我一直忘記他們。 :) – Tomalak 2010-05-06 20:12:56

0

您可以使用RegexOptions.Singleline

Regex.Match(subjectString, "regex here", RegexOptions.Singleline)