안에 내가 사용하고 작동되는 다음과 같은 정규식이있는 경우 괄호를 무시하는 정규식을 알려주기 :견적
이 문자열@extends('template', 'test')
올바르게 그룹과 저를 준다 내가 필요한
/\[email protected](@?\w+(?:::\w+)?)([ \t]*)(\(((?>[^()]+) | (?3))* \))?/x
. 문자열은 따옴표 안에 닫히지 않은 괄호가 포함 된 경우
문제는 - 그것은 실패합니다
@extends('template', 'te)st')
이
가 어떻게 내부 인용 부호있는 괄호 (무시이 정규식을 말할 수있는 출력으로 @extends('template', 'te)
을 제공합니다 http://regexr.com/v1?396ci
그리고 그녀를 : 중 '
또는 "
) 여기
문제의 RegExr 데모입니다 전자는 모든 통과 할 수있을 것입니다 문자열 목록입니다 : 나는 그것을 좁혀했습니다
@extends('template', 'test') // working
@extends('template', $test) // working
@extends('template', 'te()st') // working
@extends('template', 'te)st') // broken
@extends('template', 'te())st') // broken
@extends('template', 'te(st') // broken
@extends('template', 'test)') // broken
@extends('template', '(test') // broken
- 그리고 나는
(
\( <-- only if not inside quotes
(
(?>[^()]+) | (?3)
)*
\) <-- only if not inside quotes
)?
을 말할 수있을 필요가 있다고 생각하지만 난 것 같다 캔트 당신은이 목적을 여기
에 대한 내다을 사용할 수 있습니다
고마워요 @Mayank - 그게 다가 왔지만 테스트 케이스에 마지막')'이 포함되어 있지 않습니까? – Laurence
p.s. 원래 질문에 포함하는 것을 잊어 버린 추가 테스트 케이스 하나를 추가했습니다. – Laurence
@Laurence, 예상대로 작동합니까? –