0

用 Java 中的正则表达式替换 - 我有一个字符串

    所有的{
    条件 {licenseState=="NY"}
    条件{professionalId==301}
    条件 {professionId=="301"}
}

是否可以使用正则表达式在 java 中进行替换,所以字符串看起来像这样:


    所有的{
    条件 'licenseState=="NY"', {licenseState=="NY"}
    条件“职业 ID==301”,{职业 ID==301}
    条件 'professionId=="301"', {professionId=="301"}
    }  

基本上得到 {} 括号内的内容并将其分开放置。有可能吗?怎么做?NewLine char 不能保证在每个条件之后都存在。

我试过了:

condition\s*?{[a-zA-Z0-9=<>\s"']*} 
4

2 回答 2

1

您可以使用字符串 replaceAll函数。像这样的东西:

yourString.replaceAll("\\{([^{}]*\\=\\=[^{}]*)\\}", "'$1', {$1}");
于 2013-03-29T18:53:38.083 回答
1

假设没有嵌套{}

str = str.replaceAll( "(?<=condition)\\s*(\\{([^}]+)\\})", " '$2', $1" );
于 2013-03-29T18:58:01.057 回答