正则表达式在String中查找以特定字符开头和结尾的多个匹配项

时间:2015-02-16 13:26:31

标签: java regex

需要使用以“Contains”开头并以“。”结尾的正则表达式来查找字符串的匹配。

String statement="SOME TEXT Contains one, ones and onness. SOME TEXT Contains two. Contains three";

预期匹配:1)Contains one ones and onness. 2)Contains two.

不应匹配:Contains three,因为它不以“。”结尾。

目前我在我的java代码中使用以下正则表达式,并且最终得到的上述内容也不符合标准。

Contains[^\.]* - //正则表达式中的任何内容都以“包含”开头,后跟“。”之外的任何内容。

有关正则表达式符合我要求的任何想法吗?

3 个答案:

答案 0 :(得分:2)

您可以使用以下正则表达式:

"Contains[^.]+\\."

第二个点被转义为字面上匹配.

答案 1 :(得分:1)

.不能急于求成。

"Contains.*?\\."

答案 2 :(得分:0)

试试这个正则表达式:

public static void main(String... strings) {
    String statement="SOME TEXT Contains one, ones and onness. SOME TEXT Contains two. Contains three";
    Pattern p = Pattern.compile("(Contains.*?\\.)");
    Matcher m = p.matcher(statement);
    while(m.find()){
        System.out.println(m.group(1));
    }
}

O / P:

Contains one, ones and onness.
Contains two.