如何对正则表达式取反

发布于 2024-12-09 07:02:01 字数 348 浏览 0 评论 0原文

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

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

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

位置位于与名称,

现在我想反转它以获得以下结果:

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

I am using Java regex.
I have a String as follow

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

For above string, s.replaceAll( "\\{(.*?)\\}", "" ) returns the following string:

the location is at with the name ,

Now I want to inverse this to get following result:

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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

兮颜 2024-12-16 07:02:01

这个经过测试的脚本对我有用:

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);
    }
}

This tested script works for me:

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);
    }
}
病毒体 2024-12-16 07:02:01

您可以创建一个 Pattern 并使用 Matcher.find()Matcher.group() 获取该模式的部分内容。
以下是这些类的 Javadoc: Matcher javadoc 模式 javadoc

You can create a Pattern and use Matcher.find() and Matcher.group() to get parts of that pattern.
Here's the Javadocs for the classes: Matcher javadoc Pattern javadoc

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文