首页 > 解决方案 > 使用正则表达式在特定字符后捕获部分字符串

问题描述

String str = "FirstName LastName - 1234xx"

在上述情况下,想用“ - ”子字符串之后的所有内容替换上面的字符串。在上面的示例中,这意味着更改str1234xx

“ - ”之后的字符串长度不固定,因此不能仅捕获最后一个确定的编号。字符数

这种方法给出FirstName LastName - -而不是期望的输出1234xx

public class StringExample 
{
    public static void main(String[] args) 
    {
        String str = "FirstName LastName - 1234xx";
        String newStr = str.replaceAll("(?<=( - )).*", "$1");

        System.out.println(newStr);
    }
}

标签: javaregex

解决方案


推荐阅读