Java正则表达式删除任何东西的单引号

时间:2013-02-15 13:28:24

标签: java regex

我有一个巨大的字符串,如下所示:

widgets: '{some-really-huge-string-omitted-for-brevity}'

我想删除单引号,以便我得到:

widgets: {some-really-huge-string-omitted-for-brevity}

实际上,some-really-huge-string-omitted-for-brevity是一个包含字母数字字符,标点符号的大量字符串,基本上都是阳光下的所有内容。到目前为止我最好的尝试:

bigString = bigString.replaceAll("widgets: '\\{*\\}'", "widgets: \\{*\\}");

不会抛出任何异常/错误,但也不会改变任何事情!当我打印bigString时,它仍然与替换前相同!有任何想法吗?提前谢谢。

3 个答案:

答案 0 :(得分:1)

String str = "widgets: '{some-really-huge-string-omitted-for-brevity}'";
System.out.println (str.replaceAll ("'([^']*)'", "$1"));

答案 1 :(得分:1)

string= string.replace("'", "");

如果要删除所有单引号,请尝试上面的代码。

string= string.replace("'{", "{").replace("}'","}");

如果要在打开花括号“{”并关闭花括号“}”之前删除单引号。

答案 2 :(得分:1)

如果引号总是在那些地方。 (即字符串的第9个和最后一个字符),然后只使用子字符串进行修剪和重新加入。扫描整个String会很慢而且毫无意义。

String trimmed = hugeString.substring(0, 9) + hugeString.substring(10, hugeString.length() - 1);

<强>更新

看到你接受了这个答案,这可能是一个更有效的版本:

StringBuilder b = new StringBuilder(hugeString);
b.deleteCharAt(9);
b.deleteCharAt(b.length() - 1);
String trimmed = b.toString();