字符串拆分单引号

时间:2015-11-22 13:12:47

标签: java regex string

我是新的法律表达方式。我有一个字符串

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

2 个答案:

答案 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