在正規表示式中可使用星號*
來表示前面的字符可以出現0次或多次,也就是*
前面緊接的那個字符有出現多次或沒出現也是匹配。
例如下面的regex^yahoo*$
的最後一個o
可以不出現,或出現一次,或出現多次。
String regex = "^yahoo*$";
Pattern p = Pattern.compile(regex);
System.out.println(p.matcher("yaho").find()); // true
System.out.println(p.matcher("yahoo").find()); // true
System.out.println(p.matcher("yahooooo").find()); // true
System.out.println(p.matcher("yahoo!").find()); // false,因為regex有結束符號$,必須以o結尾
與星號*
類似的是加號+
,差別在於+
是前面的字符必須出現一次或多次。
下面範例把上面的星號*
改為加號+
,所以^yahoo+$
的最後一個o
至少要出現一次才會匹配。
String regex = "^yahoo+$";
Pattern p = Pattern.compile(regex);
System.out.println(p.matcher("yaho").find()); // false
System.out.println(p.matcher("yahoo").find()); // true
System.out.println(p.matcher("yahooooo").find()); // true
System.out.println(p.matcher("yahoo!").find()); // false
問號?
,星號*
與加號+
統稱為quantifiers或repetition operator。
沒有留言:
張貼留言