안녕 얘들 아 json 문자열 안에 토큰을 찾을 수있는 정규식을 작성하는 방법을 알고 있나요?json 내부의 토큰을 얻기위한 정규식
{"testt":"{ccc}"}
현재 임
text.match(/\{([^\}]+)\}/gm)
를 사용하여 내가받을 필요가 불과 {ccc}
하지 {"testt":"{ccc}
안녕 얘들 아 json 문자열 안에 토큰을 찾을 수있는 정규식을 작성하는 방법을 알고 있나요?json 내부의 토큰을 얻기위한 정규식
{"testt":"{ccc}"}
현재 임
text.match(/\{([^\}]+)\}/gm)
를 사용하여 내가받을 필요가 불과 {ccc}
하지 {"testt":"{ccc}
IT 당신이 찾을 따옴표 특성에 할 토큰처럼 보인다. 그것은 JSON.parse
처음에 가장 좋은 한 다음 속성을보고 그들이 표현식과 일치하는지,하지만 당신은 같은과 원시 JSON을 검색 할 수 있습니다 것입니다 :이 토큰은 "{
로 시작하고 }"
로 끝나는 것으로 가정
text.match(/"\{([^\}]+)\}"/gm)
. 시도해 볼 수도 있습니다 :
text.match(/"\s*\{\s*([^\}]+)\s*\}\s*"/gm)
당신의 점수와 당신의 예 (+1)에 동의하십시오. '}'는 문자 클래스에서 특별한 의미가 없으므로 이스케이프 할 필요가 없습니다 :'([^}] +)'. – Sam
안녕하세요 정규식 "missing /"에 오류가있는 것 같습니다 – user2470746
@ user2470746 죄송합니다. 구문 오류를 수정하기 위해 편집했습니다. –
토큰의 위치에 따라 다른 방식으로 접근 할 수 있습니다. 토큰의 인용문이 항상 인용 부호 인 경우이를 포함 할 수 있습니다. 문제는 실제로 JSON의 경우 매우 까다로워서 the way the JSON format operates 때문에 발생합니다. 그것이 항상 json의 가치 섹션에 있다면 당신은 도망 갈 수있을 것입니다.
(?::)"?\{([^\}]+)\}
그러나 것보다 더 당신은 당신이 명시 적으로가 아니라 단지 중괄호보다, 찾고있는 태그의 더 나은 화이트리스트가 필요합니다.
나는 첫 번째 대답을 발견하고이를 어쨌든 게시했습니다. 태그가 따옴표 밖에있는 경우 JSON으로 {tag}을 구문 분석하려고하는 파서의 문제가 발생합니다.
정규식을 사용하여 JSON을 구문 분석하지 마십시오. JSON 구문 분석 라이브러리를 사용하지 않는 이유는 무엇입니까? –
im은 JSON을 구문 분석하지 않습니다. {token_name}을 사용하여 정의 된 토큰을 가져와야합니다. – user2470746
JSON을 구문 분석 한 다음 토큰에 대한 객체 테스트를 반복하는 것이 현명합니다. – Sam