如何从字符串的开头删除括号中的文本

时间:2013-01-21 18:59:31

标签: java android regex string

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

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

This is a title of something...

[Brochures] This is a brochure title

[Thought Leadership] This is something else

我希望在我在屏幕上显示标识符之前从字符串中删除标识符。我认为正则表达式是最好的方法,但在理解语法时遇到一些麻烦。

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

9 个答案:

答案 0 :(得分:9)

string.replaceAll("\\[.*?\\]","");

答案 1 :(得分:1)

我的回答,作为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();
}

答案 2 :(得分:1)

正则表达式是......但更快的方法是(如果标识符在那里,方括号只出现在字符串中,标识符中不会出现括号。)

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

答案 3 :(得分:1)

试试这个:

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

答案 4 :(得分:0)

为什么

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

不够好?

答案 5 :(得分:0)

试试这个

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

答案 6 :(得分:0)

这样的事情应该有效:

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

答案 7 :(得分:0)

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

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

答案 8 :(得分:0)

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

\[.+\]\s?