首頁 >Java >java教程 >如何正確匹配多行文字與Java正規表示式?

如何正確匹配多行文字與Java正規表示式?

Mary-Kate Olsen
Mary-Kate Olsen原創
2024-12-09 18:01:15299瀏覽

How to Correctly Match Multiline Text with Java Regular Expressions?

用正規表示式匹配多行文字

匹配多行文字通常需要處理換行和錨定。當使用 Java 的 Pattern 類別時,有兩個修飾符可以幫助實現這一點:Pattern.MULTILINE 和 String.matches()。但是,它們的用法可能會產生混淆。

Pattern.MULTILINE 與(?m)

Pattern.MULTILINE 和(?m) 都有相同的用途:允許^ 和$ 在每行的開頭和$結尾匹配,而不僅僅是在整行的開頭和結尾string.

String.matches() 與Pattern.matcher()

String.matches() 期望正規表示式符合整個字串。這意味著在處理多行文字時它的使用會受到限制。

解決範例

在提供的範例中, (?m) 與 String.matches( ),這就是問題所在。由於正規表示式僅捕獲多行文字的一部分,因此 String.matches() 無法匹配整個字串並傳回 false。

多行匹配的正確用法

要正確匹配多行文本,您應該使用Pattern.compile() 和Pattern.DOTALL 修飾符,它允許點( .) 匹配換行符。以下是程式碼的更新版本:

此程式碼將成功擷取多行「使用者評論:」之後的文字。

以上是如何正確匹配多行文字與Java正規表示式?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn