유래

2014-03-26 3 views
0

내가 지금처럼 형식이 게시 된 텍스트에있는 링크를 생성하는 파서 쓰기를 시도하는 것 같은 URL로 형식화 한 문자열을 분할 정규식을 사용하여 :유래

[Site Description](http://www.stackoverflow.com) 

표준 HTML로 렌더링 할을 이 같은 링크 :

<a href="http://www.stackoverflow.com">Site Description</a> 

지금까지 내가 무엇을 아래의 표현이며, 위의 예에서 작동하지만, URL은 ".COM"후 어떤 경우 경우 작동하지 않습니다. 분명히 모든 URL을 찾을 수 있지만 내가 할 수있는만큼 일치시킬 수있는 단일 정규 표현식이 없습니다.

(\[)([A-Za-z0-9 -_]*)(\])(\()((http|https|ftp)\://[A-Za-z0-9\-\.]+\.[a-zA-Z]{2,3}(:[a-zA-Z0-9]*)?/?)(\)) 

모든 도움을 주시면 감사하겠습니다. 감사.

+1

당신은 어쩌면 그냥 []를 찾을 수 없습니다 : \[([^]]+)\]\(([^)]+)\)

로 교체 : 내 대답은 링크 태그를 모두 대문자로 ;)

무엇을 찾기 그러나 최고 주소를 찾으려는 것보다 쌍으로? – MikeH

+1

에 대한 [this] (http://stackoverflow.com/questions/161738/what-is-the-best-regular-expression-to-check-if-a-string-is-a-valid-url)을 확인하십시오. 유효한 URL을 확인하는 예 – MikeH

답변

1

글쎄, 당신은 URL 자체의 구문 분석에 대해 걱정할 필요가 없도록 클래스를 무효화 할 수 있습니까?

\[([^]]+)\]\(([^)]+)\) 

그리고 교체 : 어쩌면

<a href="$2">$1</a> 

regex101 demo

또는 URL을 식별하는 데에만 시작 부품을 사용?

\[([^]]+)\]\(((?:https?|ftp)://[^)]+)\) 

대체품은 동일합니다.

관련 문제