2017-10-05 1 views
0

re을 사용하여 URL을 일치 시키려고하는데 선택적인 부분 일치를 만드는 데 문제가 있습니다. [A-Za-z0-9?&=/?_]+, 나는 다음을 확인하기 위해 정규 표현식을 변경하고자하는 옵션을파이썬에서 정규 표현식 일치 부분을 선택하십시오.

https://iskis.com/?loc=shop_view_item&item=220503032 

- 따라서, 아무것도 슬래시 ISN 후 '

import re 

x = raw_input('Link: ') 
reg = '(http|https)://(iski|www\.iskis|iskis)\.(in|com)/[A-Za-z0-9?&=/?_]+' 
if re.match(reg, x): 
    print 'True' 

현재, 위의 코드는 같은 것을 일치합니다 t가 필요하므로 다음과 일치해야합니다.

https://iskis.com 

확실한 해결책이 있지만이 문제를 해결하는 방법을 모르겠습니다.

답변

1
reg = '(http|https)://(iski|www\.iskis|iskis)\.(in|com)(/[A-Za-z0-9?&=/?_]+)?$' 

해야 할 일. 문자 클래스를 ()으로 둘러 쌉니다. 그룹이기 때문에 ?을 입력하면 그 그룹의 0-1 인스턴스와 일치하는 텍스트가 만들어지고 $을 끝에 붙이면 정규식이 끝까지 일치합니다.

편집 :

당신이 당신의 정규식의 다른 옵션 일치를 사용할 수 그것을 생각 해 보 니,.

reg = '(https?)://(www\.)?(iskis?)\.(in|com)(/[A-Za-z0-9?&=/?_]+)?$'