如何在Java中找到第一个未转义的引号?

时间:2018-04-18 10:31:07

标签: java regex escaping

示例,我有以下字符串:

    String str = "te\\\"st\""

我必须找到第一个未转义(没有\)"的索引。 在示例中,正确的索引是9。

是否有正则表达式或任何其他解决方案来解决此问题?

我有以下代码

    Pattern pattern = Pattern.compile(HERE A REGEX);
    Matcher matcher = pattern.matcher(json);

    if(matcher.find()) {
        System.out.println(matcher.start());
    }

但我不知道要使用什么样的正则表达式。

1 个答案:

答案 0 :(得分:0)

您可以尝试使用此正则表达式查找第一个未转义的引号,

^[^"\\]*?(?:[\\]{2})*(")

Demo ,,,其中我打算将第一个未转义的引号捕获到group 1\1$1)。

要查找indexquote)的captured group 1,您需要检索该值

matcher.start(1)