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));
}