: 여기 정규식 : 일치하는 단 하나의 발생
myString_{1-10} -> match
myString_{hello}_xyz -> match
myString_{1-10}_{hello} -> do not match
내 정규식된다
(\{)[^}]*(\})
문제는 그 또한 내 정규식 중괄호 쌍 중 둘 이상을 포함하는 문자열과 일치합니다. 무엇이 누락 되었습니까?
: 여기 정규식 : 일치하는 단 하나의 발생
myString_{1-10} -> match
myString_{hello}_xyz -> match
myString_{1-10}_{hello} -> do not match
내 정규식된다
(\{)[^}]*(\})
문제는 그 또한 내 정규식 중괄호 쌍 중 둘 이상을 포함하는 문자열과 일치합니다. 무엇이 누락 되었습니까?
이를 사용할 수 있습니다
^[^{}]*\{[^}]*\}[^{}]*$
설명 :
당신은 중첩 된 괄호 또는 타의 추종을 불허하는 괄호 처리를 취할 필요가^[^{}]* // Match 0 or more occurrences of character other than [{}]
\{ // Match a `{`
[^}]* // Match 0 or more occurrences of character other than }
\} // Match a `}`
[^{}]*$ // Match 0 or more occurrences of character other than [{}]
너무
@Downvoter. 신경 쓰지 마세요. –
그리고 중괄호 사이의 내용 만 원하는 경우 어떻게해야합니까?^{^ {}} * * (? <= \\ {) [^}] * (? = \\}) [^ {}] * $ 그러나 작동하지 않습니다. – j3d
그냥 콘텐츠 이동 위의 정규 표현식 그룹에서'{'와'} '내에. 당신은 룩 어라운드 (look-around)를 사용하고 있는데, 이것이 실패한 이유입니다. '^ [^ {}] * \ {([^}] *) \} [^ {}] * $'를 사용하여 캡처 된 그룹 '1'을 얻으십시오. –
당신이 전체 정규식 - 보내고 경우 3 줄 모두를 포함하는 변수는 다음과 같습니다.
(\{.*?\})_*(?:\{)*
출력물에는 찾고자하는 내용이 정확하게 포함됩니다.
이 경우 "모두 일치하는"플래그가 필요합니다.
밑줄은 예제 일뿐입니다. 어떤 문자라도 가능합니다. – j3d
당신은 멀티 라인 모드와 .NET에서이 패턴을 사용할 수 있습니다
(?<=^(?>[^{\n]*))\{[^}]*\}(?=[^{\n]*$)
방법은 타의 추종을 불허하는 괄호 처리? 예를 들어,'myString _} {}'또는'myString _ {} _ {' – SheetJS
전체 단락을 정규식으로 바꾸고 있거나 한 줄씩 줄을 서서 가고 있습니까? –