Java替换所有特殊字符的正则表达式[

时间:2012-09-27 04:05:52

标签: java regex

我有正则表达式问题。需要正则表达专家的帮助! 它相当简单,但我无法让它发挥作用。

我知道如果我想查看文本的开头,我应该使用^ 和文本的结尾,我应该使用$

我想将[quote]替换为<a>quote</a>

这似乎不起作用..

String test = "this is a [quote]"
test.replaceAll("^\\[", "<a>");
test.replaceAll("\\]$", "</a>");

我希望字符串变为"this is a <a>quote</a>" ..

2 个答案:

答案 0 :(得分:4)

如果要将[]替换为对,则需要一次更换它们。

String test = "this [test] is a [quote]";
String result = test.replaceAll("\\[([^\\]]+)\\]", "<a>$1</a>");

答案 1 :(得分:2)

^意味着您正在寻找字符串开头的内容。但是[没有出现在字符串的开头,因此您将没有匹配项。只是做:

test.replaceAll("\\[", "<a>");
test.replaceAll("\\]", "</a>");

此外,您无法就地修改字符串。你必须将输出分配给某些东西。你可以这样做:

test = test.replaceAll("\\[", "<a>").replaceAll("\\]", "</a>");

即如果您仍想使用变量test