删除特定括号之间的一切

时间:2013-02-27 11:16:20

标签: java regex

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

  

您好。这是如此[abc =" 12"]真棒[/ abc]每次我张贴一个   在堆栈中[abc =" 456"]问题[/ abc],它在接下来的5个内被[回答]   [ABC =" 53&#34]。分钟/ ABC]

我想使用正则表达式删除(和包括)abc之间的所有[]标记。我不想删除[]之间的任何内容,因为这样也会删除不[answered]代码的abc

基本上,当[]包含文字abc时,请移除<%=movieProduct.getSynopsis().replaceAll("[.*] *", "") %> 和{{1}}之间的所有内容。

我已经能够到达

{{1}}

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

3 个答案:

答案 0 :(得分:4)

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

\[/?abc.*?\]

演示:

http://regexr.com?33u9u

答案 1 :(得分:1)

你可以尝试

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

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

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

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

答案 2 :(得分:0)

尝试以下正则表达式:

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

或者

movieProduct.getSynopsis().replaceAll("[[]abc.+?[]](.+?)[[]/abc[]]", "$1");