前面讲的正则表达式的关键字,大多是匹配一个字符
现实的应用中,肯定都是比一个字符多的,这些场景怎么表示呢
这个问题前面已经提到过,“*”这个表示数量的关键字,表示“*”号前面的字符串重复0次或无限次
有时候我就需要重复11次就可以,譬如匹配电话号码
此时关键词“*”就不满足要求了
现在就来介绍下表示字符串数量方面的其它关键字
+:这个关键字表示这样的数量--“*”前面的字符可以重复1次或无限次
?:这个关键字表示这样的数量--“?”前面的字符可以重复0次或1次
先来看看测试的脚手架代码:
Code:
package chapter4;
import java.util.Arrays;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class RegexStudyDemo {
public static void main(String[] args) {
String regexStr = "Hello[\\w\\W]!";
List input = Arrays.asList("Hello汉字!", "Hello !", "Hello !", "Hello787");
System.out.println(isMatch(input, regexStr));
} private static boolean isMatch(List inputs, String regexStr) {
boolean result = true;
for (String input : inputs) {
Pattern pattern = Pattern.compile(regexStr);
Matcher matcher = pattern.matcher(input);
if (matcher.matches()) {
continue;
}
System.out.println(String.format("%s is not match %s", regexStr, input));
result = false;
}
return result;
}
}