Java正则表达式无法按预期工作

use*_*851 2 java regex

我使用java正则表达式将我的字符串拆分为每个2个字符的子字符串.我使用以下代码.

import java.util.*;
import java.util.regex.Pattern;
import java.util.regex.Matcher;
public class HelloWorld{

    public static void main(String []args)
    {
        String str = "admins";
        String delimiters = "([a-z]{2})";

        String[] tokensVal = str.split(delimiters);

        System.out.println("Count of tokens = " + tokensVal.length);
        System.out.println(Arrays.toString(tokensVal));
    }
}
Run Code Online (Sandbox Code Playgroud)

但是运行以下代码会将count的值打印为零并打印一个空数组.

Ale*_*kov 8

import java.util.*;
import java.util.regex.Pattern;
import java.util.regex.Matcher;

public class ApachePOI{
     public static void main(String []args) {
         String str = "admins";
         String delimiters = "(?<=\\G.{2})";

         String[] tokensVal = str.split(delimiters);


         System.out.println("Count of tokens = " + tokensVal.length);
         System.out.println(Arrays.toString(tokensVal));
     }
}
Run Code Online (Sandbox Code Playgroud)

输出:

Count of tokens = 3
[ad, mi, ns]
Run Code Online (Sandbox Code Playgroud)

  • 很好用`\ G`!+1 (2认同)