我写了一个正则表达式,应该检查字符串是否包含单词'Page',然后是任何数字这是代码:
public static void main(String[] args) {
String str1 = "12/15/14 7:01:44 Page 10 ";
String str2 = "12/15/14 7:01:44 Page 9 ";
System.out.println(containsPage(str2));
}
private static boolean containsPage(String str) {
String regExp = "^.*Page[ ]{1,}[0-9].$";
return Pattern.matches(regExp, str);
}
Run Code Online (Sandbox Code Playgroud)
结果:str1:false,str2:true
你能帮我解决什么问题吗?
将正则表达式更改为以下内容:
String regExp = "^.*Page[ ]{1,}[0-9]+.$";
Run Code Online (Sandbox Code Playgroud)
这样它匹配一个或多个数字(因此[0-9]+).
你也不需要边界匹配器(^和$)因为Pattern#matches匹配整个输入字符串; 并[ ]{1,}相当于[ ]+:
String regExp = ".*Page +[0-9]+.";
Run Code Online (Sandbox Code Playgroud)