정규식에 약간 문제가 있습니다. 일치하는 항목을 테스트하려고하는데 아무 것도 따르지 않는 경우에만 테스트합니다. 따라서 아래 예제에서 테스트/생성/1/2로 이동하면 여전히 일치합니다. 나는 그것이 명시 적으로 테스트/create/1 인 경우에만 일치시키기를 원합니다 (그러나 동적입니다).정규식 - 일치 단어 아무 것도 따르지 않음
if(preg_match('^test/create/(.*)^', 'test/create/1')):
// do something...
endif;
나는 나의 구분하기 전에 $를 사용하는 것이 좋습니다 몇 가지 답을 찾았지만 아무것도 나타나지 않습니다. 또는 ^와 $의 조합으로 이해할 수는 없습니다. 정규 표현식은 나 혼란에 빠져있다!
편집 :
이난 정말이 충분히 설명하지 않았다, 그래서 그냥 명확히하려면 다음 URL이 생성 /는/{ID} 테스트의 경우 문이 true를 반환하는 경우
내가 필요 -은 { id}는 역동적입니다. {id} 뒤에 슬래시가 오는 경우 if 문은 실패합니다. 그것이 가장 좋은 일을 무엇으로 인해내가 결국 thedarkwinter의 대답을 갔다 1.
해결 후 슬래시의 실패 - 시험에서 사람의 유형// 1/2 만들 경우 너무 나를 위해, 비록 다른 답변뿐만 아니라 작동 않았다.
가 나는 또한 그것뿐만 아니라 최종 코드는 다음처럼 보였다 있도록 하이픈과 함께 일하는 것이 있는지 확인 정규식에 약간의 추가를 추가했다 : 정규 표현식 다음if(preg_match('^test/create/[\w-]*$^', 'test/create/1')):
// do something...
endif;
* 승 \에 * 추가 :^테스트// [^ /] + $^ 두 번째 작품을 만들 수 있지만, 이후에 뭔가있는 경우에도 일치합니다. 더 이상 도움이 될 것입니다. – 0Neji
@ 0 네지, 첫 번째 코드가 수정되었습니다. 두 버전 모두 나를 위해 작동합니다. http://ideone.com/au7iqu를 참조하십시오. – falsetru