2017-10-05 13 views
0

reを使用してURLをマッチさせようとしていますが、マッチの一部をオプションにすることに関して問題があります。 [A-Za-z0-9?&=/?_]+、私は次のことを行うために、正規表現を変更したいオプションをPythonで正規表現の一部を選択してください。

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インスタンスに一致させるようにして、最後に$を置き、正規表現が最後に一致するようにします。

EDIT:

は、あなたが他の場所であなたの正規表現では任意の一致を使用することができ、そういえば。

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