RegularExpression應該是所有開發者,遲到會遇到的東西,
第一次遇到的時候花了我好多時間才理解要怎麼操作,
先講幾個常用的符號
* 代表字串中有0 ~無數個前一符號
假設給定12*
則Match的會是 1 , 12 , 122
不Match的會是 123
+ 代表字串中有1 ~ 無數個前一符號
假設給定12+
則Match的會是 12, 122
不Match的會是 1, 123
[] 代表字串中有[...]內的文字
假設給定[a-z]
則Match的會是 a , b ,c ....z
不Match的會是 A, 1, &
從上面幾個符號的組合舉個例子
給定[a-zA-Z0-9]+
則Match的會是fkjlajklj , kjackjl , vnma
不Match的會是 !, @#$, $^^
例如要判斷手機號碼則 [0-9]{10} 判斷必須符合十個數字
如果要再進階一點的話 ^09[0-9]{8} 判斷必須前兩個數字為09開頭
除此之外,還有一個比較特別的用法
Pattern p = Pattern.compile("push\\('([\\u4e00-\\u9fa5/]+)'\\));
Matcher m = p.matcher(parseData);
while (m.find()){
Log.d("Ted","group "+m.group(1));
}
其中[\\u4e00-\\u9fa5/]代表著所有的中文符號
當 parseData = "push('文字')" 則 m.group(1)得到的就會是 文字
利用這種方式就可以將match的特定文字取出來,
非常方便的用法啊!!
沒有留言:
張貼留言