문자열이 있습니다.
test_str = 'This is the string and it "contains {0} a" few {1} sets of curly brackets'
내가하고 싶은 에서만 찾을 수 {0}
와 하지 {1}
, 즉,이 예에서 괄호 자신과 내용 만 따옴표의 집합 내 경우.
이 부분을 큰 따옴표로 묶어 해결하기 시작했습니다.
(?<=").*(?=")
참조 https://regex101.com/r/qO0pO2/1를
근데 그 {0}
부분 만 맞추기 힘들어요
이 정규식을 일치하도록 확장하려면 어떻게해야 {0}
합니까?
따옴표가 균형을 이루면 미리보기 를 사용 하여 불균등 한 금액을 미리 확인할 수 있습니다 . 따옴표로 묶인 부분 문자열이 하나만 있다는 것을 알고 있다면 "
끝까지 하나만 발생하는지 확인하십시오.$
{[^}]+}(?=[^"]*"[^"]*$)
데모를 참조하십시오 . 그러나 견적 된 부품의 양이 있으면 끝까지 고르지 않은 금액을 확인하십시오.
{[^}]+}(?=[^"]*"(?:[^"]*"[^"]*")*[^"]*$)
{[^}]+}
중괄호로 묶인 항목과 일치합니다. 리터럴 {
뒤에 [^}]+
하나 이상의 non}
until}
[^"]*"
첫 번째 따옴표가 나올 때까지 미리보기 내부에서(?:[^"]*"[^"]*")*
0 개 이상의 균형이 뒤 따르고 임의의 양의 따옴표가 앞에옵니다.[^"]*$
끝까지 임의의 양의 따옴표가 뒤 따릅니다.이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다