利用正規表示式進行多行文字比對
嘗試在Java 中使用正規表示式來符合多行文字時,需要考慮某行文字時,需要考慮某行文字時,需要考慮某行文字些注意事項。 Pattern.MULTILINE 修飾符和 (?m) 簡寫似乎可以呈現意想不到的結果。
要理解該行為,必須澄清修飾符的用途。 Pattern.MULTILINE (?m) 使錨點 ^(行首)和 $(行尾)能夠在每行的開頭和結尾處匹配,而不是僅在字符串的邊界處匹配。另一方面,Pattern.DOTALL (?s) 允許點字元匹配換行符。
在您的範例中,(?m) 模式在與 String.matches 一起使用時會失敗,因為 matches() 需要正規表示式匹配整個字串。由於您的正規表示式 (W)(S) 僅符合字串的一部分,因此比較結果為 false。
要尋找以「User Comments:」開頭的字串,這是一個正規表示式更適合該任務的是:
此正規表示式使用Pattern.DOTALL 允許點匹配換行符,並且它捕獲將“用戶評論:”後面的文字放入第一個捕獲組中。
透過使用 DOTALL 修飾符並利用正確的匹配方法(find() 或 matches()),您可以使用正規表示式有效地匹配多行文字Java。
以上是Java中如何使用正規表示式有效匹配多行文字?的詳細內容。更多資訊請關注PHP中文網其他相關文章!