今天在Java中想使用正規表示式來取得一段文字中的任意字元。於是很隨意得就寫出如下符合規則:
(.*)
結果運作之後才發現,無法取得換行之後的文字。於是查了一下手冊,才發現正規表示式中,「.」(點符號)相符的是除了換行符號「n」以外的所有字元。同時,手冊上還有一句話:要匹配包括 'n' 在內的任何字符,請使用像 '[.n]' 的模式。於是我將正規表示式的符合規則修改如下:
([.n]*),當然,如果是在java程式中直接寫到話,需要改為([.\n]*)
結果再次執行程序,發現什麼內容也取不到了。我百思不得其解,再修改為以下規則:
([.|n]*) 以及 ([n.]*)
結果還是不行,什麼內容都取不到。看來點符號和換行符卯上勁了~
然後上網一查,雖然沒有查出上述規則到底是什麼地方出問題了,但是查出了一個解決辦法,經過一試,果然可以匹配包括換行符在內的任意字符,以下為正確的正規表示式匹配規則:
([sS]*)
同時,也可以用「([dD]*)」、「([wW]*)」來表示。
在文字檔案裡, 這個表達式可以符合所有的非英文(例如中文)
/[^ -~]/
/是VI裡使用的. 你在editplus或程式裡不需要/
更多正規表示式匹配任意字元(包括換行符)的寫法相關文章請關注PHP中文網!