在指定的字符串后获取特定长度的子字符串的所有出现

时间:2017-10-24 08:37:16

标签: java

例如在" abc"。

之后获取3个字符的子字符串
abcxyzabcpqrabclmnoabcdef

输出应该是

xyz
prq
lmn
def

我只能获取第一次出现但不是全部。

2 个答案:

答案 0 :(得分:2)

这是一个正则表达式:

(?<=abc)...

(?<=abc)表示只有在它之前存在字符abc时才匹配其后的模式。并且...表示匹配任何字符中的3个。

final String regex = "(?<=abc)...";
final String string = "abcxyzabcpqrabclmnoabcdef";

final Pattern pattern = Pattern.compile(regex);
final Matcher matcher = pattern.matcher(string);

while (matcher.find()) {
    System.out.println(matcher.group(0));
}

答案 1 :(得分:0)

尝试使用以下代码剪切,它适合您。

    String str="abcxyzabcpqrabclmnoabcdef";
    String[] strCsv=str.split("abc");
    for(int i=0;i<strCsv.length;i++){
        String str1=strCsv[i];
        if(str1.length()>=3)
        {
            System.out.println(str1.substring(0,3));
        }
    }