我正在从RSS源中读取一些数据以显示在Android设备上。
字符串在开头可能有也可能没有括号内的标识符,例如
This is a title of something...
[Brochures] This is a brochure title
[Thought Leadership] This is something else
我希望在我在屏幕上显示标识符之前从字符串中删除标识符。我认为正则表达式是最好的方法,但在理解语法时遇到一些麻烦。
非常感谢任何建议或解决方案。
答案 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?