3
key="VALUE"
을 포함하는 행의 VALUE를 추출하려고합니다.이를 해결하기 위해 간단한 루아 패턴을 사용하려고합니다.루아 패턴의 캡쳐 그룹은 캡쳐 그룹 대신 리터럴 숫자 문자와 일치합니다.
VALUE에 리터럴 1
이 포함 된 행을 제외한 행에서 작동합니다. 패턴 파서가 내 캡처 그룹을 이스케이프 시퀀스로 혼동시키는 것 같습니다.
> return string.find('... key = "PHONE2" ...', 'key%s*=%s*(["\'])([^%1]-)%1')
5 18 " PHONE2
> return string.find('... key = "PHONE1" ...', 'key%s*=%s*(["\'])([^%1]-)%1')
nil
>
감사합니다. 나는 세트에서 캡쳐 그룹을 포함하도록 강제하기 위해 1을 벗어날 것이라고도 알았다. '[^ % \ 1] ' 당신의 솔루션은 더 이해하기 쉽고 더 깨끗합니다. 나는 그것을 사용할 것이다. – nolan
@nolan이 경우, 단지 [[^ \ 1]'을 사용하고 싶을뿐입니다. '%'문자는 필요하지 않습니다. – hjpotter92
실제로 그렇지 않습니다. 고맙습니다. – nolan