2012-11-25 5 views
-5

은 regex가 시퀀스를 인식하고 그에 기반한 동작을 수행 할 수 있습니까?정규 표현식은 문자 수에 따라 일치합니까?

예를 들어, $ string을 검색하고 $ string 앞에 x 문자를 기준으로 BASED를 계산하고 일부 데이터를 추출하려면 regex가 필요합니다.

누구든지 나에게이 단어를 더 잘 설명하거나 링크를 제안하면 크게 감사하겠습니다.

+0

'x'는 상수입니까, 아니면 문자열 내용에서 계산합니까? – tjameson

+0

Plz에서 Q를 보여주세요 –

+0

x는 상수입니다. –

답변

3

당신은 regex에서 lookahead라고하는 것을 찾고 있습니다. 예를 들어 아래의 정규 표현식은 문자열 앞에 5-7 자리가있는 경우에만 일치합니다. "string"을 자신의 var로 바꿔야합니다.

if (eregi('[[:digit:]]{5,7}(?=string)', $subject)) { 
    # Successful match 
} else { 
    # Match attempt failed 
} 
0

내가 PHP에 대해 잘 모르지만, 역 참조를 제공 정규식 엔진이 트릭 (자바 스크립트 스타일의 정규식 생성을 사용하여)을 수행해야합니다

var reg = new RegExp("^.*(.{"+x+"})"+str); 

x는 5이고, STR은 "인 경우 세계 ", 정규식은 다음과 같이 보일 것입니다 :이 문자열에서 실행

/^.*(.{5})world/ 

: somethinghelloworld는 일치하는 문자열은 hello 될 것입니다.

나는 PHP의 정규식 엔진을 지원하는지 모르지만 이론적 인 정규 표현식의 꽤 일반적인 확장입니다.