【问题标题】:Remove everything between specific brackets删除特定括号之间的所有内容
【发布时间】:2013-02-27 11:16:19
【问题描述】:

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

嗨。这太 [abc="12"]awesome[/abc] 以至于每次我发布 [abc="456"]question[/abc] 在堆栈中,它在接下来的 5 内得到 [answered] [abc="53"]分钟[/abc]。

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

基本上,当 [] 之间还包含文本 abc 时,删除所有内容。

我已经能够到达

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

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

【问题讨论】:

  • \[/?abc.*?]|\[|\] 将匹配所有括号和 abc 标签与 Hi 的结果。这太棒了,每次我在堆栈上发布一个问题,它都会在接下来的 5 分钟内得到回答。

标签: java regex


【解决方案1】:

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

\[/?abc.*?\]

演示:

http://regexr.com?33u9u

【讨论】:

    【解决方案2】:

    你可以试试

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

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

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

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

    【讨论】:

      【解决方案3】:

      尝试以下正则表达式:

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

      或者

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

      【讨论】:

        猜你喜欢
        • 2022-10-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-11-03
        • 2020-03-12
        • 2020-02-28
        • 2021-12-02
        • 1970-01-01
        相关资源
        最近更新 更多