2015年5月12日 星期二

Android 開發(八十六) Regex regular expression

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的特定文字取出來,
非常方便的用法啊!!


沒有留言:

張貼留言