2010-11-27 3 views
0

다음 링크를 분리 할 수 ​​있습니까? 링크를 선택할 수는 있지만 링크가 바로 옆에 붙여있는 경우에는 선택할 수 없습니다.정규식 찾기 링크

고맙습니다

예 : http://www.fileserve.com/file/7kXswvM/part1.rarhttp://www.fileserve.com/file/r4F3Gmh/part2.rarhttp://www.fileserve.com/file/r4F3Gmh/part3.rar

+1

당신은 어떤 환경을 원하십니까? C#, perl, 텍스트 편집기? –

+1

'regex' 태그가 특정 언어 나 도구로만 답변을 제한하려면 언어 태그 나 툴 태그를 사용하는 것이 좋습니다. 강력하게 표현하지 않았거나 neos가 특정 태그의 발췌 부분을 절대 보지 않았습니까? 사람들이 태그를 포함 할 때 태그의 발췌 포스터를 보여주기 위해 SO 코드를 변경해야할까요? – tchrist

+0

@tchrist : [사람들은 읽지 않습니다.] (http://www.joelonsoftware.com/uibook/chapters/fog0000000062.html) Joel은 그렇게 말합니다. –

답변

3

당신은 http://에 분할 수 있고 다시 앞에 추가 모든 링크 (그것은 단지 모든 HTTP의 가정) 것을 (나는 별도로 3 개 링크를 선택합니다).

+0

+1에 대해서도 마찬가지였습니다. – Philar

0

일치하는 http:// -s 및 분할. spec에 따르면 URL의 다른 부분에 나타날 수 없습니다.

1
http://(?:(?!http://).)* 

http://의 다음 발생 또는 문자열의 끝 하나까지 http://로 시작하는 문자열과 일치하는 것입니다.

>>> re.findall(r'http://(?:(?!http://).)*', 'http://www.fileserve.com/file/7kXswvM/part1.rarhttp://www.fileserve.com/file/r4F3Gmh/part2.rarhttp://www.fileserve.com/file/r4F3Gmh/part3.rar') 
['http://www.fileserve.com/file/7kXswvM/part1.rar', 
'http://www.fileserve.com/file/r4F3Gmh/part2.rar', 
'http://www.fileserve.com/file/r4F3Gmh/part3.rar'] 

입력에 링크 이외의 다른 것이 있으면 당연히 작동하지 않습니다. 다른 방법으로, 다음과 같은 정규 표현식은 다음 http://까지 일치 또는 다음 공간 (또는 문자열의 끝)까지 :

http://(?:(?!http://|\s).)*