1

我有正则表达式问题。需要正则表达式专家的帮助!这很简单,但我无法让它工作。

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

我想替换[quote]<a>quote</a>.

这似乎不起作用..

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

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

4

2 回答 2

3

如果你想用pair替换[and ],你需要一次性替换它们。

String test = "this [test] is a [quote]";
String result = test.replaceAll("\\[([^\\]]+)\\]", "<a>$1</a>");
于 2012-09-27T04:22:13.307 回答
2

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

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

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

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

也就是说,如果您仍想使用该变量test

于 2012-09-27T04:08:59.887 回答