2013-08-05 1 views
1

문자열 a과 일치시키고 싶지만 내 캡처 패튼이 b이 되길 원합니다. 원래 문자열 그냥 a을 때정규식 : 고정 문자열로 캡쳐 설정

(?<id>a) 

하지만 id을 원하지는 b 수 :

a 내가 쉽게 할 수 id라는 이름으로 캡처합니다. 즉 원본 문자열에없는 문자로 캡쳐를 원합니다.

preg_match('/your_magic/', 'a', $matches); 
print $matches['id'] == 'b'; // true 
+1

구글'정규식 대체'당신은 당신이 변수를 사용하려고 – alfasin

+0

많은 예를 찾을 수 있습니다 <프로그래밍 언어의 이름> 정규식 패턴? 누구에게이 질문이 맞습니까? – sgroves

+0

@sgroves 나는 그 질문을 업데이트했다. –

답변

0

입력 문자열에없는 캡처 그룹에 아무 것도 얻을 수있는 방법은 없습니다 :

예를 들어, PHP에서이 같이 보일 것입니다. 캡처 그룹은 (적어도 Perl에서는) 부분적으로 원래 입력 문자열의 시작/끝 위치로 표시됩니다.

캡쳐 그룹에 입력 할 값이 입력 문자열에있는 경우 찾아보기를 사용하여 지정할 수 있습니다. 정규 표현식의 제한된 lookbehind (PHP와 같은)가있는 경우 원하는 문자열이 일치해야합니다. 예를 들어

:

preg_match('/a(?=.*(?<id>b))/', 'a foo b', $matches); 
print "matched '$matches[0]', id is '$matches[id]'"; 

출력 :

matched 'a', id is 'b' 
+0

좋아요, 할 방법이 없습니다. 감사. –

관련 문제