domain.zz または domain.zzz または domain.zz.zz または /something を取得しようとしています。
import re
the_string = """lalalla?url=http2F%2Fdomain.zz%slgkfgs0s"""
the_string = """lalalla?url=http2F%2Fdomain.zz.zz/something%slgkfgs0sf"""
the_string = """lalalla?url=randomh564domain.zzz/something%slgkfgs0sf"""
the_string = """lalalla?url=randomeefsdlk876%domain.zz/something%slgkfgs0sf"""
the_string = """p%3A%2F%2Fdummy_test.com/ratata%2F&"""
the_string = """p%3A%2F%2Fdum2test.co.uk/something%2F&-kj"""
これは私が今持っているものです:
>>> print( re.findall('(?:www\d{0,3}[.]|[a-z0-9.\-]+[.][a-z]{2,4})(?:/[a-z0-9]+)',the_string))
domain.zzz/something
domain.zz/something
domain.zz.zz/something
>>> print( re.findall('www\d{0,3}[.]|[a-z0-9.\-]+[.][a-z]{2,4}',the_string))
domain.zzz
domain.zz
domain.zz.zz
そして、これらの 2 つのグループを 1 つの再質問で取得したいと思います。
編集:これはほぼ完璧です: '([a-z0-9.-]+[.][az]{2,4})|(?:/[a-z0-9]+)' しかし、それはつかみます文字列の最初からいくつかのゴミ。
文字列は、この例よりもはるかにランダムです: 私はこれらの 3 つのケースに焦点を当てています:
domain.co.uk/something
^ ^ ^
domain.com/something
^ ^
domain.com
^