string的某些方法對傳入的string引數並不解釋成具體的字串值,而是將其解釋成具有特定字串特徵的字串表示式,該表示式表示的並不是具體的字串值而是一種特徵。表示式中含有具有特定意義的符號,用於限定表示式表示的字串特徵,該表示式稱為正規表示式。
string的以下方法中用到的string類引數regex將被解析成正規表示式:
boolean matches(string regex)
string replaceall(string regex,string replacement)
string replacefirst(string regex,string replacement)
string split(string regex)
string split(string regex,int limit)
正規表示式對字串特徵進行限定的方式有:
1)對單個字元位的字元值進行限定;
2)對乙個字元位進行規則限定,然後設定該規則向後重複的位數;
3)將單個或連續多個字元位編組,對組進行規則限定,然後設定該規則向後重複的組數;
4)在編組的情況下,引用前方適配過的組的結果進行新的規則限定;
正規表示式應用舉例:
1)"[abcd]"、"[a-z]" ——這些都是對單個字元位的限定;
2)"[a-z]+"、"[a-z]*"、"[1-9]"、"a+"、"a*"、"a"——單個字元位向後重複的位數;
3)"(ab[a-z]d)+"、"(ab[a-z]d)*"、"(ab[a-z]d)"——組向後重複的位數;
4)"([a-z1-9])[a-d]\\1"——後面引用前面適配過的組的值。
正規表示式符號解釋:
[...]——方括號限定乙個字元位,其中的內容取並集;
、、——大括號用於修飾其前面的單個字元位或組要重複的次數或次數的上下限(上限下限都含),可以只有下限;
(...)——園括號用於分組,組號從1開始,從左向右按遇到的左括號的順序編組號,其實整個正規表示式是第0組;
+——加號用於表示前面的單個字元或組的規則限定重複一次或多次;
*——乘號用於表示前面的單個字元或組的規則限定重複零次或多次;
?——問號用於表示前面的單個字元或組的規則限定重複零次或一次;
[^...]——方括號中第一位是符號^,表示對括號中的並集取補集即取反,如果將該符號放在第一位方括號中第一位以外的位上就沒有取反的意思只代表^符號;
[...&&...]——方括號內部的&&,表示將兩邊的規則取交集;
.——點號表示任意字元;
\d——表示[0-9];
\d——表示[^0-9];
\s——表示空白字元[\t\n\x0b\f\r];
\s——非空白字元;
\w——單詞字元[a-za-z_0-9];
\w——非單詞字元[^\w];
\\——表示\;
^——行開頭;
$——行結尾;
\b——單詞邊界;
\b——非單詞邊界;
\a——輸入的開頭;
\z——輸入的結尾;
\z——輸入的結尾,僅用於最後的結束符(如果有的話)。
pattern類和matcher類:
pattern類用於匹配正規表示式和char值可讀序列,其用法是:
1.用pattern類的靜態方法獲得pattern物件(static pattern compile(string regex))——獲得帶有給定的正規表示式的pattern物件,pattern具有string的matches(...)方法和split(...)方法;
2.用pattern物件的方法(matcher matcher(charsequence input))獲得matcher物件——matcher既帶有待匹配序列又帶有正規表示式,具有包括replaceall(...)方法、replacefirst(...)方法、matches()方法、find()方法、group()方法在內的一系列方法可用於對char序列進行匹配。
matcher的方法:
string replaceall(string replacement);
string replacefirst(string replacement);
boolean matches();
boolean find()和string group()——用find方法在char序列中查詢匹配正規表示式的子串行,找到返回true否則返回false,若find返回true,此時呼叫group方法將返回此次查詢找到的子串行(string),若find返回false,則返回null,如果未呼叫find方法就呼叫group方法將丟擲異常。
char值序列帶有索引,在呼叫匹配方法時,索引會隨著移動,下次的匹配起始位置也隨著移動。
int start()——返回最後一次匹配的開始索引;
int end()——返回最後一次匹配的結束索引。
黑馬程式設計師 正規表示式
asp.net android io開發s net培訓 期待與您交流!正規表示式 定義 其實是用來操作字串的一些規則。好處 正則的出現,對字串的複雜操作變得更為簡單。特點 將對字串操作的 用一些符號來表示。只要使用了指定符號,就可以呼叫底層的 對字串進行操作。符號的出現,簡化了 的書寫。弊端 符號的...
黑馬程式設計師 正規表示式
正規表示式 某個描述字串物件是不是跟符合我設定的語法規則。public class test w com org com cn 這個字串表示 在大小寫英文,和數字組合的字串 長度為7 13之間 中間有 隔開郵箱型別,郵箱型別長度3 5之間,尾部字尾 com org 或 com.cn system.o...
黑馬程式設計師 正規表示式
asp.net android ios開發 net培訓 期待與您交流!正規表示式 a za z 代表其中的乙個 表否 為任意,當用來split分是要注意得 d和 0 9 相同,d和 0 9 相同 w單詞字元 a a z 0 9 w為非單詞字元 w x?代表前面可有1次,可沒有 x 為x0次或x多次 ...