2009-09-04 3 views
0

내가 가진 문자열이 같은 URL 재 작성에 도움이 :정규 표현식은

http://localhost:2055/web-site-2009/paginas/noticias/**IGP-M recua 0,36% em agosto, aponta FGV**-46.aspx 
나는 URL에 문제를 일으킬 수있는 모든 문자를 제거하고 싶습니다

(? 같은, |, & 등) 및 문자열의 굵은 부분에 하이픈 (-)이 표시됩니다. 46.aspx 옆에 하이픈을 유지하는 것이 중요합니다.

그 정규식은 무엇입니까?

+1

하이픈 (-)은 URL에서 문제가되지 않습니다. Stackoverflow 및 대부분의 블로그 및 뉴스 사이트에서이를 사용합니다. –

+0

그 이유는 내가 여분의 캐릭터로 포함 된 이유입니다. 문제는 내 URLRewriting 사양에서 하이픈을 구분 기호로 사용하므로 하이픈이 그 앞에 나타나면 URLRewriter를 오도하는 것입니다. –

답변

10

또 다른 방법은 문자열 URL Encode입니다. 당신이 다른 이유로 정규식을 사용해야하는 경우, 나는이 당신에 대해 요구하고 문자를 얻을 것이라고 생각 :

Regex.Replace(stringToCleanUp, "[^a-zA-Z0-9/;\-%:]", string.Empty); 

정규식 설명 :

  • 문자의 목록을 일치하지 않습니다 - AZ (a 및 Z 하부 케이스 사이의 모든 문자) 문자
  • 목록 : AZ
  • 모든 숫자 (a 및 Z 상부 케이스 사이의 모든 문자)] 수단 목록 ^는 부정
  • 문자 목록을 의미 0-9 (모든 숫자)
  • 그 후 허용 할 문자 목록을 포함했습니다. /; - (\로 이스케이프 처리해야 함 - 예약 된 문자 임) % :

최종 목록에서 추가하거나 제거 할 수 있습니다 .

RegExr과 같이 조정할 필요가있는 경우 대화식 RegEx 도구를 사용하는 것이 좋습니다.

+0

당신이 지적한 아주 멋진 도구입니다. 하지만 문제는 Regex가 원하는 방식으로 조정할만큼 충분히 이해하지 못한다는 것입니다. 고맙습니다 –