正則匹配換行符、英文、非英文(比如中文)


今天在Java中想使用正則表達式來獲取一段文本中的任意字符。於是很隨意得就寫出如下匹配規則: 
(.*) 
結果運行之后才發現,無法獲得換行之后的文本。於是查了一下手冊,才發現正則表達式中,“.”(點符號)匹配的是除了換行符“\n”以外的所有字符。同時,手冊上還有一句話:要匹配包括 '\n' 在內的任何字符,請使用像 '[.\n]' 的模式。於是我將正則表達式的匹配規則修改如下: 
([.\n]*),當然,如果是在java程序中直接寫到話,需要改為([.\\n]*) 
結果再次運行程序,發現什么內容也取不到了。我百思不得其解,又將其修改為如下規則: 
([.|\n]*) 以及 ([\n.]*) 
結果還是不行,什么內容都取不到。看來點符號和換行符卯上勁了~ 
然后上網一查,雖然沒有查出上述規則到底是什么地方出問題了,但是查出了一個解決辦法,經過一試,果然可以匹配包括換行符在內的任意字符,以下為正確的正則表達式匹配規則: 
([\s\S]*) 
同時,也可以用 “([\d\D]*)”、“([\w\W]*)” 來表示。 


在文本文件里, 這個表達式可以匹配所有的英文 
/[ -~]/ 
這個表達式可以匹配所有的非英文(比如中文) 
/[^ -~]/ 
/是VI里用的. 你在editplus或程序里不需要/ 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM