正则表达式 - 单个字符复数发现java

时间:2016-08-11 07:08:37

标签: java regex

字符串

The method according to claims 1 to 6
The method of claim 1, 

我的正则表达式

\\bclaim\\s+(\\d+)
 it finding the digits after the word claim

如果单词claim找到单词后面的数字  如果单词claims未找到

所以我改变了我的正则表达式

\\bclaim(?=s)\\s+(\\d+)

但它没有找到索赔 让我知道任何其他可能性

2 个答案:

答案 0 :(得分:4)

您不需要前瞻,只需选择s

\\bclaims?\\s+(\\d+)

通过使用前瞻(?=s),您的正则表达式不会消耗s之后出现的字符claim,因此\\s+之后的第二行不匹配。

RegEx Demo

答案 1 :(得分:0)

嘿,只使用以下正则表达式,

String pattern = "\\bclaims?\\s+(\\d+)";
        Pattern r = Pattern.compile(pattern);
        Matcher m = r.matcher(str);
        if (m.find( )) 
            System.out.println(m.group()); 

输出:

claims 1
claim 1