今天在Java中想使用正則表達(dá)式來(lái)獲取一段文本中的任意字符。于是很隨意得就寫(xiě)出如下匹配規(guī)則:
(.*)
結(jié)果運(yùn)行之后才發(fā)現(xiàn),無(wú)法獲得換行之后的文本。于是查了一下手冊(cè),才發(fā)現(xiàn)正則表達(dá)式中,“.”(點(diǎn)符號(hào))匹配的是除了換行符“\n”以外的所有字符。同時(shí),手冊(cè)上還有一句話(huà):要匹配包括 ‘\n’ 在內(nèi)的任何字符,請(qǐng)使用像 ‘[.\n]‘ 的模式。于是我將正則表達(dá)式的匹配規(guī)則修改如下:
([.\n]*),當(dāng)然,如果是在java程序中直接寫(xiě)到話(huà),需要改為([.\\n]*)
結(jié)果再次運(yùn)行程序,發(fā)現(xiàn)什么內(nèi)容也取不到了。我百思不得其解,又將其修改為如下規(guī)則:
([.|\n]*) 以及 ([\n.]*)
結(jié)果還是不行,什么內(nèi)容都取不到??磥?lái)點(diǎn)符號(hào)和換行符卯上勁了~
然后上網(wǎng)一查,雖然沒(méi)有查出上述規(guī)則到底是什么地方出問(wèn)題了,但是查出了一個(gè)解決辦法,經(jīng)過(guò)一試,果然可以匹配包括換行符在內(nèi)的任意字符,以下為正確的正則表達(dá)式匹配規(guī)則:
([\s\S]*)
同時(shí),也可以用 “([\d\D]*)”、“([\w\W]*)” 來(lái)表示。
本文可以自由轉(zhuǎn)載,轉(zhuǎn)載時(shí)請(qǐng)保留全文并注明出處:
轉(zhuǎn)載自仲子說(shuō) [ http://www.wangzhongyuan.com/ ]
原文鏈接:http://www.wangzhongyuan.com/archives/640.html
聯(lián)系客服