应该检查字符串包含指定单词的正则表达式

Lus*_*usi 3 java regex

我写了一个正则表达式,应该检查字符串是否包含单词'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

你能帮我解决什么问题吗?

man*_*uti 5

将正则表达式更改为以下内容:

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)