2

我有一个这样的特定段落:

你好。这太 [abc="12"]awesome[/abc] 以至于每次我在堆栈中发布 [abc="456"] 问题[/abc] 时,它都会在接下来的 5 [abc="53" ]分钟[/abc]。

我想使用正则表达式删除abc(包括)之间的所有标签[]。我不想删除两者之间的任何内容,[]因为这也会删除[answered]哪个不是abc标签。

基本上,在它还包含 text之间[和之间删除所有内容。]abc

我已经能够到达

<%=movieProduct.getSynopsis().replaceAll("[.*] *", "") %>

但它不起作用,而且我不知道如何搜索 abc。

4

3 回答 3

4

这应该可以选择所有必需的标签:

\[/?abc.*?\]

演示:

http://regexr.com?33u9u

于 2013-02-27T11:20:18.387 回答
1

你可以试试

replaceAll("\\[abc.*?\\].*?\\[\\/abc\\]", "")

擦除标签之间的所有内容。\使用正则表达式时不要忘记使用特殊字符转义。

如果要将文本保留在标签内,可以使用

replaceAll("\\[abc.*?\\](.*?)\\[\\/abc\\]", "$1")
于 2013-02-27T11:19:47.097 回答
0

尝试以下正则表达式:

"[[].*abc.*?[]]"

或者

movieProduct.getSynopsis().replaceAll("[[]abc.+?[]](.+?)[[]/abc[]]", "$1");
于 2013-02-27T11:18:57.427 回答