我有一個字符串必須提取多個子字符串。將被提取的字符串在'
之間。如何在Java中提取多引號子字符串
我只能提取第一個或最後一個,當我使用indexOf或正則表達式。
我怎樣才能提取它們,並將它們放入數組或列表中,而無需解析相同的字符串?
resultData = "Error 205: 'x' data is not crawled yet. Check 'y' and 'z' data and update dataset 't'";
我在下面試過;
protected static String errorsTPrinted(String errStr, int errCode) {
if (errCode== 202) {
ArrayList<String> ar = new ArrayList<String>();
Pattern p = Pattern.compile("'(.*?)'");
Matcher m = p.matcher(errStr);
String text;
for (int i = 0; i < errStr.length(); i++) {
m.find();
text = m.group(1);
ar.add(text);
}
return errStr = "Err 202: " + ar.get(0) + " ... " + ar.get(1) + " ..." + ar.get(2) + " ... " + ar.get(3);
}
編輯
我用@MinecraftShamrock的做法。
if (errCode== 202) {
List<String> getQuotet = getQuotet(errStr, '\'');
return errStr = "Err 202: " + getQuotet.get(0) + " ... " + getQuotet.get(1) + " ..." + getQuotet.get(2) + " ... " + getQuotet.get(3);
}
這應該不是那麼複雜。你能發表一些你已經嘗試過的東西,並感到沮喪到最後在這裏跑步嗎? – 2015-02-08 10:10:21
''(。*?)''就是你想要的。我不會告訴你完整的解決方案,首先嚐試自己,並讓我們知道你是否有問題。 – Maroun 2015-02-08 10:10:26
@MarounMaroun我已經嘗試過了,結果只有'x',y,z,t結果消失。 – 2015-02-08 10:20:27