Java,在字符串模式之间获取文本

时间:2014-06-04 06:28:17

标签: java string

我需要在以下字符串出现之间获取文本:

"--asset"

"--"

所以从字符串开始,

"jelly beans --asset the fat cow jumps over the moon --"

我可以得到这个文本,

"the fat cow jumps over the moon"

除了展示如何做到这一点,我真的很感激解释给出的代码中发生了什么。

4 个答案:

答案 0 :(得分:4)

使用String.indexOf()方法在目标字符串中查找"--asset",如果找到,则使用"--""--asset"索引后的目标字符串中查找匹配的String.indexOf()。通过这个,您将获得两个索引,然后您需要使用String.subString()来获得所需的输出。

使用String.trim()从输出中删除多余的空格。

答案 1 :(得分:1)

使用正则表达式:

System.out.println(s.replaceAll("(--$|.*--\\w+\\s+)", ""));

--$ --> $ means end of string. So --$ matches "--" at the end.
| --> means "or" operation.

\\w --> one or more alphabets a-zA-Z_
\\s+ --> one or more spaces
.* -- > Matches any character 0 or more times greedily (as long as possible)..

答案 2 :(得分:0)

使用正则表达式提取文本。

Pattern pattern = Pattern.compile("--asset(.*)--");
String input = "jelly beans --asset the fat cow jumps over the moon --";
Matcher m = pattern.matcher(input);
if (m.find()) {
    System.out.println(m.group(1).trim());

}

答案 3 :(得分:0)

你可以这样做:

String result;
int start = yourString.indexOf("--asset");

if (start != -1) {
    int end = yourString.indexOf("--", start);

    if (end != -1)
        result = yourString.substring(start, end).trim();
}