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