在Java中使用正则表达式更改字符串

时间:2013-06-18 17:30:54

标签: java regex replace

我将XML文件加载到像这样的

字符串中
<children name="{content.type}">
    <values>{video}</values>
</children>
<children name="{content.size}">
    <values>250</values>
</children>
<children name="uploaded by">
    <values>user1</values>
</children>

我想删除名称标签中的{},以便输出看起来像这样

<children name="content.type">
    <values>{video}</values>
</children>
<children name="content.size">
    <values>250</values>
</children>
<children name="uploaded by">
    <values>user1</values>
</children>

目前我有这段代码 -

Pattern p = Pattern.compile("([^,]*)\"\\{([^,]*)\\}\"([^,]*)");
Matcher m = p.matcher(content);
if (m.find()){
    System.out.println(m.group(1));
}

但是这个字符串在中途被切断了。我的正则表达式有问题吗?

2 个答案:

答案 0 :(得分:3)

怎么样

content.replaceAll("\\bname=\"\\{([^}]+)\\}\"", "name=\"$1\"")

答案 1 :(得分:2)

这会有用吗?

s.replaceAll( "name=\"\\{", "name=\"" ).replaceAll( "\\}\">", "\">" )