使用正则表达式在Java中的特定子字符串后拆分字符串

使用正则表达式在Java中的特定子字符串后拆分字符串,java,regex,Java,Regex,在上述情况下,希望将上面的字符串替换为“-”子字符串后面的所有内容。在上述示例中,这意味着将str更改为1234xx String str = "FirstName LastName - 1234xx" “—”之后的字符串长度不是固定的,因此不能只捕获最后一定数量的字符 这种方法给出的是FirstName LastName---而不是所需的输出1234xx String str = "FirstName LastName - 1234xx" 公共类字符串示例 { 公共静态void main(

在上述情况下,希望将上面的字符串替换为“-”子字符串后面的所有内容。在上述示例中,这意味着将
str
更改为
1234xx

String str = "FirstName LastName - 1234xx"
“—”之后的字符串长度不是固定的,因此不能只捕获最后一定数量的字符

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

String str = "FirstName LastName - 1234xx"
公共类字符串示例
{
公共静态void main(字符串[]args)
{
String str=“FirstName LastName-1234xx”;

String newStr=str.replaceAll(“(?你的思路是对的。只需使用一个懒散的点,就可以使用包括破折号在内的所有内容

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

        System.out.println(newStr);
    }
}

谢谢,但有一件事。希望所有内容都在“-”之后而不是“-”之后。如何在“-”之前和之后包含空格?希望此测试用例失败
FirstName LastName-1234xx
Yes.。不希望该用例工作。根据您的回答,认为这将是正确的实现
“^.*-\\s*”“
。您能验证吗?
而不是所需的输出1234xx
…如果不是”
1234xx
,您所需的输出是什么?我要检查的子字符串将是“-”而不是“-”。要在破折号周围使用空格,然后在破折号旁边拆分子字符串。输入
FirstName LastName-1234xx
应该是
1234xx
,而
FirstName LastName-1234xx
应该产生相同的字符串
FirstName LastName-1234xx
。但是可以得到我想要的答案。谢谢您提供了更多的案例吗?看起来是这样“-”之后的子字符串并修剪所有空格都可以。