如何在Java中实现.group()Regex

时间:2015-12-11 12:23:50

标签: java regex

我有一个字符串:

<E-25-Lorem Ipsum is simply dummy text-34>

我想得到字符串&#34; Lorem Ipsum只是虚拟文字&#34;并将其分配给变量&#34; msg&#34;所以我可以在其他地方使用它。

这是我的代码:

    String pattern = "([A-Za-z_ ])\\w+";
    //Create a Pattern object
    Pattern r = Pattern.compile(pattern);

    //Matcher Object
    Matcher m = r.matcher(frame);
    String msg = new String();

    if (m.find( )){
        msg = m.group(0);
    }

System.out.println(msg);

System.out.println(msg)打印出&#34; Lorem&#34;而不是打印&#34; Lorem Ipsum只是虚拟文本&#34;。

1 个答案:

答案 0 :(得分:3)

您只需要将+量词应用于[A-Za-z_ ]字符类以匹配1个或多个匹配项:

([A-Za-z_ ]+)\w+
           ^

请参阅regex demo

根据您是否需要捕获第一个字母,您还可以考虑使用

([A-Za-z_ ])\w+(?:\s+\w+)*

请参阅another regex demo