2013-12-11 3 views
1

URL을 수정하는 작업은 IIS8에서 다시 작성되며 정규 표현식에 대한 도움이 필요합니다. 이 같은 URL에서 정규 표현식 도움말 : 대시에서 깨기 ... 또는하지 않음

:

mysite.com/wichita-2014-Honda-Ridgeline 

다음 식을 쉽게

/index.php?year={R:0}&make={R:1}&model={R:2} 

큰 작품까지 분할 큰

^wichita-([^/-]+)-([^/-]+)-([^/-]+)$ 

작동합니다. 끊어짐

mysite.com/wichita-2014-Honda-CR-V 

"CR-V"의 새 대시에 유의하십시오. 이 솔루션은 지금까지보다 일반적 선행 예외 규칙을 가지고있다 :

^wichita-([^/-]+)-([^/-]+)-CR-V$ 

내가

^wichita-([^/-]+)-([^/-]+)-[a-zA-Z0-9\-]*$ 

을 시도했다하지만 그건 3 경기와 R을 반환 : 0 전체 URL입니다! 분명히 그것은 내가 원하는 것이 아닙니다.

나는 더 좋은 방법이 있다고 상상해야합니다. 아직 찾지 못했고 정규 표현식에 강하지도 않습니다.

그래서, 요약하기의 세 가지 조건에

  1. 일치가 : 가능한 경우, 그 정규 표현식을 찾고 년도, 모델을
  2. 사람들을 (단지 그들에게 이름을 지정합니다) 3 개의 검색어가 대시로 구분됩니다.
  3. 용어 3은 대시 (또는 URL에 더하기 기호로 표시되는 공백)를 포함 할 수 있으며 구분 기호가 아닌 용어의 일부로 사용해야합니다.

도와주세요.

답변

0

내가 ^wichita-([^/-]+)-([^/-]+)-(.+)$를 사용하여 캡처 그룹을 매핑 줄은 R : 1, R : 2, R : 3 /index.php?year={R:1}&make={R:2}&model={R:3}

.+가에 처음 두 캡처 그룹 후에 모든 것을 캡처 마지막으로 '아무것도 간다' 버킷.

+0

분명한 것은 놓치 셨습니다. 그것이 바로 그 것이었다. 고맙습니다! –

+0

@BillinKansasCity 또한 다양한 질문에 대한 대답을 받아 들여야합니다. 그렇지 않으면 사람들이 응답을 멈 춥니 다. – Pyrce

+0

나는 그 점에 완전히 능숙합니다. 방법? 투표를하려했지만 그 뜻이 무엇이든간에 "15 평판"이 필요합니다. 나는 너의 포스트 안에 나에게 그것을 "받아들이는"방법을 나타내는 어떤 것도 보지 못한다. –