정규 표현식

serialx의 이미지

정규표현식 (Regular Expression) 에 대해서 질문들 드리고자 합니다.

HTML 코드에서 domain 을 추출하고 싶습니다.

...href="www.domain.com"... -> www.domain.com

... abc.ce.ro.... -> abc.ce.ro

...href=3D"abc.com/aaaa" ... -> abc.com

이렇게 추출하고 싶은데 그림파일들 aaa.jpg 등과 겹칩니다.

현제 나름대로 써본 정규 표현식 입니다 :

([_a-zA-Z\d\-\.]+\.[_a-zA-Z\d\-]{1,3})+

더 좋은 방법 없을까요?

trowind의 이미지

(?https?//)?((?[a-z0-9](?[-a-z0-9]*[a-z0-9])?\.)+(?com|edu|biz|gov|info|mil|net|org|[a-z][a-z])(?\d+)?)

파이썬에서 돌아가는 정규표현식입니다. 펄이랑 그렇게 큰 차이는 나지 않는 것으로 알고 있습니다.

그리고, 이 코드는 캡쳐 기능(? 맞나) 을 사용했습니다. 첫번째 그룹이 도메인에 해당합니다. 도메인 뒤에 오는 경로부분까지 따야 한다면 다음 코드를 이용해보세요.

(?https?//)?((?[a-z0-9](?[-a-z0-9]*[a-z0-9])?\.)+(?com|edu|biz|gov|info|mil|net|org|[a-z][a-z])(?\d+)?)(/?[^!,?;"'<>()\[\]{}\s\x7F-\xFF]*([!.,?]+[^!,?;"'<>()\[\]{}\s\x7F-\xFF]+)*)?