在正規表示式中可使用?
(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
沒有留言:
張貼留言