Java 删除{}之间的空格 “${addr2}${addr1}${zipcd}${city}”${addr2}${addr1}${addr2}${addr3}${cntry_desc}好的
我希望输出为Java 删除{}之间的空格 “${addr2}${addr1}${zipcd}${city}”${addr2}${addr1}${addr2}${addr3}${cntry_desc}好的,java,regex,Java,Regex,我希望输出为 <#if { cntry } = "FI" > <#if { addr2 } = " " >" " <#else> ${ addr2 } </#if> ${ addr1 } ${ zipcd } ${ city } <#else> <#if { addr2 } = " " >" " <#else> $
<#if { cntry } = "FI" > <#if { addr2 } = " " >" " <#else> ${ addr2 } </#if> ${ addr1 } ${ zipcd } ${ city } <#else> <#if { addr2 } = " " >" " <#else> ${ addr2 } </#if> ${ addr1 } ${ addr2 } ${ addr3 } ${ cntry_desc } ok fine </#if>
“${addr2}${addr1}${zipc}${city}”${addr2}${addr1}${addr2}${addr3}${cntry_desc}好的
只想删除{}之间的空格就可以了
<#if {cntry} = "FI" > <#if {addr2} = " " >" " <#else> ${addr2} </#if> ${addr1} ${zipc} ${city} <#else> <#if {addr2} = " " >" " <#else> ${addr2} </#if> ${addr1} ${addr2} ${addr3} ${cntry_desc} ok fine </#if>
只要
{
和}
没有嵌套,就可以使用此正则表达式搜索:
str = str.replaceAll("\\{\\s*", "{")
.replaceAll("\\s*\\}", "}")
并将其用于替换:
" +(?=[^{]*})"
Java代码:
""
或者你可以使用
String repl = input.replaceAll(" +(?=[^{]*})", "");
和使用
\{\s+([\w]+)\s+\}
作为替代
所以,这个代码
{$1}
String raw=“\”\“${addr2}${addr1}${zipcd}${city}\”\“${addr2}${addr1}${addr2}${addr3}${cntry\u desc}好的”;
raw.replaceAll(“\\{\\s+([\\w]+)\\s+\\},“{$1}”);
会回来的
String raw = "<#if { cntry } = \"FI\" > <#if { addr2 } = \" \" >\" \" <#else> ${ addr2 } </#if> ${ addr1 } ${ zipcd } ${ city } <#else> <#if { addr2 } = \" \" >\" \" <#else> ${ addr2 } </#if> ${ addr1 } ${ addr2 } ${ addr3 } ${ cntry_desc } ok fine </#if>";
raw.replaceAll("\\{\\s+([\\w]+)\\s+\\}", "{$1}");
“${addr2}${addr1}${zipcd}${city}”${addr2}${addr1}${addr2}${addr3}${cntry_desc}好的
因此,世界各地都称之为Ask Your Regex Here站点!
<#if {cntry} = "FI" > <#if {addr2} = " " >" " <#else> ${addr2} </#if> ${addr1} ${zipcd} ${city} <#else> <#if {addr2} = " " >" " <#else> ${addr2} </#if> ${addr1} ${addr2} ${addr3} ${cntry_desc} ok fine </#if>