2014-12-23 2 views
2

나는 Youth Football (Soccer) 클럽 인 클라이언트를위한 사이트를 개발 중입니다. 그들은 7P 팔콘 (슬러그 = under-7s-falcons)과 같이 WordPress에서 카테고리로 만든 다양한 팀을 많이 보유하고 있습니다. 사이트의 일부에서는 카테고리 슬러그를 사용하여 각 팀 페이지에 연결해야하지만이 페이지의 URL은 약간 다른 형식 (/under-7s/falcons)입니다. 나는 PHP의 preg_replace() 함수를 사용하여 /under-##s-falcons 비트 다음에 -을 대시로 바꿔서 /under-##s/falcons으로 표시하려고했습니다. 여기 내 코드입니다 :특정 문자열 뒤의 대시 대체

$teamPage = preg_replace("/under-[1-9]{1,2}s-/", "/", $teamPage); 

당신이 볼 수 있듯이, 나는 '아래의'다음 두 자리 숫자 (각 나이, 최대 16 후 오는 - 일치하도록 노력하고 있어요,하지만 난 같은 1-9 뒀다 그것은 더 쉽다). 그러나 이것은 단지 under-##s 비트를 /으로 바꿉니다. -/으로 바꾸려면 어떻게 변경합니까?

감사합니다 도움 :

+0

"lookinhind"또는 "\ K"로 표시하거나 주요한 것들을'$ 1'로 캡처하고 다시 삽입하십시오. – mario

답변

1

을 위해 당신은 단순히이 목적을 위해 capturing group를 사용할 수 있습니다.

$teamPage = preg_replace("/(under-[1-9]{1,2}s)-/", "$1/", $teamPage); 

또는 당신이보고 된 경기와 이전에 소비되는 문자의 시작점을 재설정 \K 이스케이프 시퀀스를 사용할 수는 더 이상 포함되지 않습니다.

$teamPage = preg_replace("/under-[1-9]{1,2}s\K-/", "/", $teamPage); 
+2

안녕하세요, 고맙습니다. @hwnd, 완벽하게 작동합니다. 나는 그룹을 붙잡는 것에 더 많이 보일 것이다 :) –