我是新的法律表达方式。我有一个字符串
String span = "some text, param1:'1123',some text, param2:'3444';"
现在我想使用split,并获取param1和param2的值。 所以我认为如果我使用单引号拆分,我将获得长度== 2的数组元素。 我的问题是单引号的分裂并不起作用。 我想我需要在单引号内添加一些正则表达式
String[] elements = span.split("''");
param1 = elements[elements.length-2];
param2 = elements[elements.length-1];
所以我的输出将是:
1123
3444
答案 0 :(得分:0)
我的解决方案是:
Pattern pattern = Pattern.compile("'(?:[^']|'')+'");
ArrayList<String> values = new ArrayList<>();
Matcher matcher = pattern.matcher(span);
while (matcher.find()) {
values.add(matcher.group());
}
nom = values.get(1).replace("'","");
答案 1 :(得分:0)
您可以使用正则表达式执行此操作:
'(.*?)'
'
是Java
中的一个特殊字符,因此您需要使用Pattern.quote()
将其视为文字。
尝试:
String span = "some text, param1:'1123',some text, param2:'3444';";
Pattern p = Pattern.compile(Pattern.quote("'") + "(.*?)" + Pattern.quote("'"));
Matcher m = p.matcher(span);
while (m.find()) {
System.out.println(m.group(1));
}
输出:
1123
3444