Java 使用正则表达式将字符串拆分为多个字符串

Java 使用正则表达式将字符串拆分为多个字符串,java,regex,Java,Regex,我正在做一项任务来解析cucumber特性字符串,我需要将字符串拆分为5个,如下所示 String data = "calls 'create' using 'POST' on some uri"; String dataArray[] = {"calls '","create","' using '","POST", "' on some uri"}; 我多次实现了基本的拆分功能(没有任何非常繁琐的正则表达式),以便将数据生成到以下内容中 String data = "calls 'cre

我正在做一项任务来解析cucumber特性字符串,我需要将字符串拆分为5个,如下所示

String data = "calls 'create' using 'POST' on some uri";
String dataArray[] = {"calls '","create","' using '","POST", "' on some uri"};
我多次实现了基本的拆分功能(没有任何非常繁琐的正则表达式),以便将数据生成到以下内容中

String data = "calls 'create' using 'POST' on some uri";
String dataArray[] = {"calls '","create","' using '","POST", "' on some uri"};

我想获得
dataArray[1]
dataArray[3]
的名称。是否有一种方法可以使用regex和split或其他直接方法生成上述
数据数组

public static void main (String[] args) {
  String data = "calls 'create' using 'POST' on some uri";
  String[] dataArray = new String[2];
  Matcher matcher = Pattern.compile("'[a-zA-Z]+'").matcher(data);
  int counter = 0;
  while (matcher.find()) {
    String result = matcher.group(0);
    dataArray[counter++] = result.substring(1, result.length() - 1);
  }
}
输出:

dataArray[0] --> create
dataArray[1] --> POST
简单地使用这个

String dataArray[] = data.split("'");
->
[calls , create,  using , POST,  on some uri]
那么为什么
“calls”
是一个标记,而“create”不是?