【问题标题】:How to implement .group() Regex in Java如何在 Java 中实现 .group() 正则表达式
【发布时间】:2015-12-11 12:23:49
【问题描述】:

我有一个字符串:

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

我想获取字符串“Lorem Ipsum 只是虚拟文本”并将其分配给变量“msg”,以便我可以在其他地方使用它。

这是我的代码:

    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) on 打印出“Lorem”,而不是打印“Lorem Ipsum is simply dummy text”。

【问题讨论】:

    标签: java regex


    【解决方案1】:

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

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

    见regex demo

    根据是否需要捕捉首字母,也可以考虑使用

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

    见another regex demo

    【讨论】:

    • 在 Java 代码中使用这些正则表达式时不要忘记使用双反斜杠。
    • 它对你有用吗?如果是,请考虑接受答案。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-11
    • 1970-01-01
    • 1970-01-01
    • 2010-12-12
    相关资源
    最近更新 更多