java代码中的正则表达式,用于逗号分隔的字符串,并用单引号括起来

java代码中的正则表达式,用于逗号分隔的字符串,并用单引号括起来,java,regex,Java,Regex,我想生成一个正则表达式,用于从用单引号括起来的逗号分隔的标记中提取字符串标记 例如:'ad2&fs'df'、'sdfsg34fb5bg'、'rfrg#d、fg' 在这里,我想获得以下代币: ad2&fs'df sdfsg34fb5bg rfrg#d,fg 标记可以包含字母、数字和特殊字符,包括逗号和撇号(单引号)。这可能会有所帮助 public static void main(String args[]) throws Exception { String s= "'ad2

我想生成一个正则表达式,用于从用单引号括起来的逗号分隔的标记中提取字符串标记

例如:
'ad2&fs'df'、'sdfsg34fb5bg'、'rfrg#d、fg'

在这里,我想获得以下代币:

ad2&fs'df
sdfsg34fb5bg
rfrg#d,fg
标记可以包含字母、数字和特殊字符,包括逗号和撇号(单引号)。

这可能会有所帮助

public static void main(String args[]) throws Exception {
    String s=  "'ad2&fs'df','sdfsg34fb5bg','rfrg#d,fg'";
    System.out.println(Arrays.toString(s.split("','|^'|'$")));
}
O/p:


由于第一个
,此代码将在索引0处为您提供一个额外的空字符串。您可以忽略它

//使用这个简单的正则表达式模式

public static void main(String[] args) {

    String s = "'ad2&fs'df','sdfsg34fb5bg','rfrg#d,fg'";
    Pattern pattern = Pattern.compile("'(.*)','(.*)','(.*)'");
    Matcher matcher = pattern.matcher(s);
    boolean match = matcher.matches();

    System.out.println(matcher.group(1));
    System.out.println(matcher.group(2));
    System.out.println(matcher.group(3));
}
}

结果如下

ad2&fs'df

sdfsg34fb5bg

rfrg#d,fg


希望这能有所帮助。

到目前为止您尝试了什么?可能重复了我尝试过的许多表达式,但它变得非常复杂并且不起作用。它可以有任意数量的标记,不一定是threePattern pattern=pattern.compile(“('(.*”),(.*),(.*))*?”;可以让你得到更多的代币。希望这有帮助
public static void main(String[] args) {

    String s = "'ad2&fs'df','sdfsg34fb5bg','rfrg#d,fg'";
    Pattern pattern = Pattern.compile("'(.*)','(.*)','(.*)'");
    Matcher matcher = pattern.matcher(s);
    boolean match = matcher.matches();

    System.out.println(matcher.group(1));
    System.out.println(matcher.group(2));
    System.out.println(matcher.group(3));
}