正規表示式 java

2021-08-29 11:07:20 字數 1749 閱讀 8648

正規表示式在字串處理上有著強大的功能,sun在jdk1.4加入了對它的支援

下面簡單的說下它的4種常用功能:

查詢:[code]string str="abc efg abc";

string regex="a|f"; //表示a或f

pattern p=pattern.compile(regex);

matcher m=p.matcher(str);

boolean rs=m.find();[/code]

如果str中有regex,那麼rs為true,否則為flase。如果想在查詢時忽略大小寫,則可以寫成pattern p=pattern.compile(regex,pattern.case_insensitive);

提取:[code]string regex=".+\\\\(.+)$";

string str="c:\\dir1\\dir2\\name.txt";

pattern p=pattern.compile(regex);

matcher m=p.matcher(str);

boolean rs=m.find();

for(int i=1;i<=m.groupcount();i++)[/code]

以上的執行結果為name.txt,提取的字串儲存在m.group(i)中,其中i最大值為m.groupcount();

分割:[code]string regex="::";

pattern p=pattern.compile(regex);

string r=p.split("xd::abc::cde");

執行後,r就是,其實分割時還有跟簡單的方法:

string str="xd::abc::cde";

string r=str.split("::");[/code]

替換(刪除):

[code]string regex="a+"; //表示乙個或多個a

pattern p=pattern.compile(regex);

matcher m=p.matcher("aaabbced a ccdeaa");

string s=m.replaceall("a");[/code]

結果為"abbced a ccdea"

如果寫成空串,既可達到刪除的功能,比如:

string s=m.replaceall("");

結果為"bbced ccde"

附:\d 等於 [0-9] 數字

\d 等於 [^0-9] 非數字

\s 等於 [ \t\n\x0b\f\r] 空白字元

\s 等於 [^ \t\n\x0b\f\r] 非空白字元

\w 等於 [a-za-z_0-9] 數字或是英文本

\w 等於 [^a-za-z_0-9] 非數字與英文本

^ 表示每行的開頭

$ 表示每行的結尾

如不用編譯過的 正規表示式,對應的 split,replaceall,indexof等等,可直接用字串實現,如replace(string regexp , string substr)。中要求regexp 是正規表示式的形式。什麼意思了,是轉義後能匹配的字串的值。如:a*b,能匹配:ab,aab,aaaaaab。又如: "\:]" 匹配 ":]".

但有乙個比較特殊,那就是反斜槓:

比如你要匹配"\"你必須用 "\\\\"就是這個字串轉義之後再轉義是你想要匹配的字串,匹配反斜槓按照常理你應該寫"\\"但其實是應該寫"\\\\" 他轉義後是"\\"再轉義就是你想要的 反斜槓了

Java正規表示式

正規表示式結構簡介 字元 x 字元 x 反斜槓 0n 十進位制數 0 n 7 0nn 十進位制數 0nn 0 n 7 0mnn 十進位制數 0mnn 0 m 3,0 n 7 xhh 十六進製制數 0xhh uhhhh 十六進製制數 0xhhhh t 製表符 u0009 n 換行符 u000a r 回...

Java正規表示式

方便查詢的東西 基本語法 轉義字元 in d d d 數字0 9 多少到多少 d 非數字 0 9 非 w 單詞字元 a za z0 9 a3 w 非單詞字元 w s 空白 如 n t 0 1次 1 n次 0 n次 必須是n次 大於等於n次 n demo 中文 u0391 uffe5 英文 a za ...

Java正規表示式

舉例說明 the 開頭一定要有 the 字串 of despair 結尾一定要有 of despair 的字串 那麼,abc 就是要求以abc開頭和以abc結尾的字串,實際上是只有abc匹配。notice 匹配包含notice的字串。你可以看見如果你沒有用我們提到的兩個字元 最後乙個例子 就是說 模...