2017-04-04 2 views
0

어떻게 정규식이 싫어! : '(여기 내 코드입니다 :.Preg_이 두 문자열을 즉시 일치 시키십시오. 나는 정규식 미친거야

preg_match("/^stats_equals_([(.*)])_([(.*)])/", $tag, $fieldAndValue)?$tag:!$tag): 
echo ">". $fieldAndValue[1]; 
echo ">". $fieldAndValue[2]; 

나는 다음과 같은 문자열을 먹이 오전 당신은 아무것도 영숫자, 또는 포함 할 수 있습니다 볼 수있다 (광기는 계속된다 두렵다 반) 특수 문자는 자주 (그냥 결코 대괄호를 강조한다. !) :

나는 "foo1_foo"와 "Bar2_bar"를 참조 반향

을 내가 온 가장 가까운는 "foo1_foo"두 반복이며이 나는 것을 지금 나에게 분명 기대하고

stats_equals_[foo1_foo]_[Bar2_bar] 

. 무엇인가 붙어있는 지 알기 위해 표현을 던지기 만하면됩니다. 정규 표현식 전문가 중 한 명에게 말하기!

위의 코드는 내가 종료 한 곳이며 전혀 표시되지 않습니다.

대단히 감사합니다.

+0

그의 정규식을 테스트하고자하는 사람 : https://regex101.com/r/hNRLvw/1 – mkaatman

+0

@mkaatman 그 점에 대해 고마워 해야겠다. 나는 자신을 생각해야한다. :) – mayersdesign

+0

입력 내용에 { 그것은 단지 그것이 보이는 오타가 들어있는 stats_squals로 시작하는 경우에만 일치합니다. – mkaatman

답변

0

OK, 어느 정도 추측과 정규식 샌드 박스에 재생하여 나는이 충돌 :

preg_match("/^stats_equals_\[(.*?)\]_\[(.*?)\]/", $tag, $fieldAndValue)?$tag:!$tag):] 

대부분 내 문제는 탈출에 필요한 []되는 메타 문자에 의해 발생했다.

당신은 살아 있고 배우게됩니다.