網頁

2017/9/18

Regex 問號 ? 的用法

在正規表示式中可使用?(Optional Items)來表示前面的字可以出現0次或1次,也就是問號前面緊接的那個字有出現一次則匹配,沒出現也是匹配。

例如下面範例,?緊接於s,因此要檢查的字串不論是books或是books結果都是批配。

Pattern p = Pattern.compile("books?");
System.out.println(p.matcher("books").matches());  // true
System.out.println(p.matcher("book").matches());   // true
System.out.println(p.matcher("bookss").matches());  // false

?可搭配括弧使用,緊接於括弧後則括弧內的規則可存在也可不存在

Pattern p = Pattern.compile("Dec(ember)?");
System.out.println(p.matcher("December").matches()); // true
System.out.println(p.matcher("Dec").matches());  // true
System.out.println(p.matcher("Decemb").matches());  // false

問號?星號*加號+統稱為quantifiers或repetition operator。

沒有留言:

張貼留言