用Java中的正则表达式替换 - 我有一个字符串
allof{ condition {licenseState=="NY"} condition{professionId==301} condition {professionId=="301"} }
是否可以使用正则表达式在java中进行替换,因此字符串看起来像这样:
allof{ condition 'licenseState=="NY"', {licenseState=="NY"} condition 'professionId==301', {professionId==301} condition 'professionId=="301"', {professionId=="301"} }
基本上得到{}括号内的内容并将其单独放置。有可能吗?怎么样?每种情况都不保证NewLine char存在。
我试过了:
condition\s*?{[a-zA-Z0-9=<>\s"']*}
答案 0 :(得分:1)
您可以使用string replaceAll功能。像这样:
yourString.replaceAll("\\{([^{}]*\\=\\=[^{}]*)\\}", "'$1', {$1}");
答案 1 :(得分:1)
假设没有嵌套{}
str = str.replaceAll( "(?<=condition)\\s*(\\{([^}]+)\\})", " '$2', $1" );