如何否定逆正则表达式

时间:2011-10-11 03:21:13

标签: java regex replace inverse

我正在使用Java正则表达式。 我有一个String如下

String s = "the location is at {emp.address.street} with the name {emp.name},{emp.surname}";

对于上面的字符串,s.replaceAll( "\\{(.*?)\\}", "" )返回以下字符串:

the location is at with the name ,

现在我想反过来得到以下结果:

{emp.address.street}{emp.name}{emp.surname}

2 个答案:

答案 0 :(得分:1)

这个经过测试的脚本适合我:

public class TEST
{
    public static void main( String[] args )
    {
        String s = "the location is at {emp.address.street} with the name {emp.name},{emp.surname}";
        String result = s.replaceAll( "[^{}]+|(\\{(.*?)\\})", "$1" );
        System.out.println(result);
    }
}

答案 1 :(得分:0)

您可以创建Pattern并使用Matcher.find()Matcher.group()来获取该模式的部分内容。 以下是课程的Javadoc:Matcher javadoc Pattern javadoc