Pattern pattern = Pattern.compile("\w+@\w+.\w+");
Matcher matcher = pattern.matcher(text);
if(matcher.find()){
System.out.println(matcher.group());
} } } 把這段程序用jdk或jcreator或水膩的便了。反正運(yùn)行起來(lái)就是了輸出結(jié)果:xhinker@163.com 當(dāng)你看完下面的東西回頭再看看這段程序就會(huì)發(fā)現(xiàn),這不過(guò)是小菜一碟 字符和字符類
表格 A: 字符匹配
操作
解釋
例子
結(jié)果
.
單個(gè)字符匹配
.ord
匹配 “ford”, “l(fā)ord”, “2ord”,
[ ]
多個(gè)字符列表
[cng]
只會(huì)匹配 “cord”, “nord”, 和 “gord”
[^ ]
不出現(xiàn)字符列表
[^cn]
匹配 “l(fā)ord”, “2ord”, 等. 但不會(huì)匹配 “cord” or “nord”
[a-zA-Z]
匹配 “aord”, “bord”, “Aord”, “Bord”等
[^0-9]
匹配 “Aord”, “aord”, 等. 但不會(huì)匹配“2ord”, 等.
表格 B: 重復(fù)操作符
操作
解釋
例子
結(jié)果
?
匹配0次或1次
“?erd”
匹配 “berd”, “herd”“erd”等
*
匹配0次以上
“n*rd”
匹配 “nerd”, “nrd”, “neard”, 等.
+
匹配1次以上
“[n]+erd”
匹配 “nerd”, “nnerd”, 等., 但不匹配 “erd”
{n}
匹配n次
“[a-z]{2}erd”
匹配“cherd”, “blerd”, 等. 但不匹配 “nerd”, “erd”, “buzzerd”, 等.
{n,}
匹配n次以上
“.{2,}erd”
匹配 “cherd” and “buzzerd”, but not “nerd”
{n,N}
匹配n-N次
“n[e]{1,2}rd”
匹配 “nerd” and “neerd”等
常用符號(hào): d:[0-9] D:[^0-9] w:[a-zA-Z0-9] W:[^a-zA-Z0-9] {?i):大小寫(xiě)無(wú)關(guān) 和B分別表示詞邊界和非詞邊界當(dāng)然上面這些只不過(guò)是最常用的,寫(xiě)出幾個(gè)正則表達(dá)式是沒(méi)有問(wèn)題了。接下來(lái)說(shuō)說(shuō)java。在java里有其自身的意義,所以在用s,d的時(shí)候要加上一個(gè)也就是\s 、\d \(等 java自1.4后開(kāi)始支持正則表達(dá)式,東西都放在java.util.regex包里,用Pattern生成一個(gè)模式對(duì)象,然后用matcher進(jìn)行匹配。如果要輸出匹配結(jié)果的話,一定要記得寫(xiě)上matcher.find();否則會(huì)出錯(cuò)。當(dāng)然也可以用替換,這就要看你的喜好拉。想看更多的例子就去jdk幫助文檔。 想了解更多或者掌握正則表達(dá)式的話,google去吧,那里是知識(shí)的海洋。