【问题标题】:How to remove text in brackets from the start of a string如何从字符串的开头删除括号中的文本
【发布时间】:2013-01-04 21:44:36
【问题描述】:

我正在从 RSS 提要中读取一些数据以显示在 Android 设备上。

字符串开头的括号中可能有也可能没有标识符,例如

This is a title of something...

[Brochures] This is a brochure title

[Thought Leadership] This is something else

如果字符串中有标识符,我想在我将其显示在屏幕上之前将其从字符串中删除。我认为正则表达式是最好的方法,但在理解语法方面有些困难。

非常感谢任何建议或解决方案。

【问题讨论】:

    标签: java android regex string


    【解决方案1】:
    string.replaceAll("\\[.*?\\]","");
    

    【讨论】:

    • 不错的一个。只需将 .trim() 添加到它的末尾即可满足我的需要
    【解决方案2】:

    我的回答,作为 RegExp 方法的替代方法:)

    public static String stripTag(String value) {
        if (value == null || !value.startsWith("[")) {
            return value;
        }
        int closeBracket = value.indexOf(']');
        if (closeBracket < 0) {
            // No closing bracket.
            return value;
        }
        return value.substring(closeBracket + 1).trim();
    }
    

    【讨论】:

      【解决方案3】:

      正则表达式是一种方式......但一种更快的方式是(如果方括号仅在标识符存在时出现在字符串中,并且标识符中没有方括号出现。)

      String string = "[Thought Leadership] This is something else";
      if(string.charAt(0) == '[')
          string = string.substring(string.indexOf("]") + 1).trim();
      

      【讨论】:

        【解决方案4】:

        试试这个:

        String.replaceAll("[.*]","");
        

        【讨论】:

          【解决方案5】:

          为什么

          replaceAll("[", "").replaceAll("]", "") 
          

          还不够好?

          【讨论】:

          • 这只会替换 '[' 和 ']' 字符 - 而不是介于两者之间的字符。
          【解决方案6】:

          这样的事情应该可以工作:

          String s = "[Thought Leadership] This is something else";
          String newString = s.replaceFirst( "\\[[^\\]]+\\]", "").trim();
          System.out.println( newString); // Prints: This is something else
          

          【讨论】:

            【解决方案7】:

            myString.replaceFirst("regex", "replacement")是你需要的方法。

            正则表达式类似于"^\\[.*\\]",而您的替换字符串将是空字符串""

            【讨论】:

              【解决方案8】:

              您可以尝试以下正则表达式(一旦转义为 Java 可接受的格式):

              \[.+\]\s?
              

              【讨论】:

                【解决方案9】:

                试试这个

                s=your string
                int close=s.lastindexOf(']')
                result=s.substring(close+1)
                

                【讨论】:

                • 我认为这足以替换两个括号。
                猜你喜欢
                • 1970-01-01
                • 2018-06-08
                • 2014-08-02
                • 1970-01-01
                • 1970-01-01
                • 2012-03-16
                • 2015-06-10
                相关资源
                最近更新 更多