在引号字符之间获取字符串

时间:2018-01-13 06:55:43

标签: android substring

我有一个像

这样的字符串
"/d/WdTkRcxA/" + (446767 % 51245 + 446767 % 913) + "/Test%20vol.zip"

我需要"字符和( )个字符之间的值。

/d/WdTkRcxA/
446767 % 51245 + 446767 % 913
/Test%20vol.zip

我知道如何使用

获取( )字符之间的值
String result = result.substring(result.indexOf("(")  + 1, result.indexOf(")"));

但是我无法获得 / d / WdTkRcxA / /Test%20vol.zip

有人可以建议吗?

1 个答案:

答案 0 :(得分:1)

这种情况下,子字符串有点过于复杂,因此使用正则表达式会更好。使用此模式:["(]([^\)"]*)[")],您可以从该文本中提取目标字符串:

String text = "\"/d/WdTkRcxA/\" + (446767 % 51245 + 446767 % 913) + \"/Test%20vol.zip\"";
Pattern pattern = Pattern.compile("[\"(]([^\\)\"]*)[\")]");

Matcher m = pattern.matcher(text);
while (m.find()) {
    String value = m.group(1);

    System.out.println(value);
}

结果:

/d/WdTkRcxA/
446767 % 51245 + 446767 % 913
/Test%20vol.zip