2013-01-21 228 views
2

我正在讀取RSS源中的某些數據以顯示在Android設備上。如何從字符串的開頭刪除括號中的文本

該字符串在開始處可能有或沒有括號中的標識符,例如,

This is a title of something... 

[Brochures] This is a brochure title 

[Thought Leadership] This is something else 

我想從字符串中刪除標識符,如果它有一個之前我將它顯示在屏幕上。我認爲正則表達式是最好的方式,但是在解決語法問題時遇到了一些麻煩。

任何建議或解決方案非常感謝。

回答

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

不錯的一個。只需要將.trim()添加到它的末尾,就可以得到我需要的 – EHarpham

0

爲什麼

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

不夠好?

+1

這隻會替換「[」和']'字符 - 而不是介於兩者之間。 –

+0

明白了,然後 - 使用任何人已經給你的正則表達式。 –

0

試試這個

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

我認爲這足以替換兩個括號。 – Arpit

0

像這樣的東西應該工作:

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

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

正則表達式會像"^\\[.*\\]"和您的替換字符串奧尼爾是空字符串""

0

你可以試試下面的正則表達式(一旦逃進一個Java可接受的格式):

\[.+\]\s? 
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(); 
} 
1

正則表達式是......但更快的方式是(如果方括號只出現在字符串中如果標識符是存在的,並且沒有括號出現在標識符)

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

試試這個:

String.replaceAll("[.*]",""); 
相關問題