示例,我有以下字符串:
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());
}
但我不知道要使用什么样的正则表达式。
答案 0 :(得分:0)
您可以尝试使用此正则表达式查找第一个未转义的引号,
^[^"\\]*?(?:[\\]{2})*(")
Demo ,,,其中我打算将第一个未转义的引号捕获到group 1
(\1
或$1
)。
要查找index
(quote
)的captured group 1
,您需要检索该值
matcher.start(1)