JSON 텍스트에서 String을 가져 오려고하는데, 어떤 이유로 든 계속 실패하고 있습니다. JSON 파서를 사용하지 않는 이유는 하나의 필드이기 때문에 정규 표현식을 사용하는 것이 더 쉬울 것이라고 생각했기 때문입니다.하지만 여기서는 약간의 정보가 누락 된 것 같습니다. 저는 여기에 달성하기 위해 노력하고있어입니다 :왜이 문자열에서 lookbehind가 실패합니까?
"텍스트":
json으로 문자열의 일부를 내가 얻으려고,
그리고 "를 여기에 텍스트를 삽입"내 코드 :
String p1 = "\"text\": \"((?<!\\\\)\"+)\"";
Pattern pa1 = Pattern.compile(p1);
Matcher m = pa1.matcher(s);
while (m.find()) {
System.out.println(m.group());
}
내 논리 :하지 '입니다
일치 아무것도 \ "다음에 (\") "
[^ \ "]을 사용하면 제대로 작동하는 것 같습니다. 그러나 텍스트 안에 따옴표가있을 수 있으며 텍스트 문자열이 실제로 끝났는지 확인하는 유일한 방법은 백 슬래시가 진행되지 않는 따옴표를 찾는 것입니다.
무엇이 여기에 있습니까? 준비
"text": "(([^\\"]|\\")+)"
자바 : 당신은 lookbehinds 필요하지 않습니다