最近想提取出特定的URL,遇到问题为预期提取出URL中带有webshell或者phpinfo字段的URL,但是全部URL都匹配出来了:
for url in urls:
if "webshell" or "phpinfo" in url:
print url
改成and语句也不符合预期,只提取出了含有phpinfo的url:
for url in urls:
if "webshell" and "phpinfo" in url:
print url
Ini ok, anda pada asalnya menilai "webshell" dahulu, dan jika ia bukan sifar, maka nilai "phpinfo" dalam url "webshell" dan "phpinfo" dalam url adalah terikat...
bermaksud
if "webshell"
atauif "phpinfo" in url
dan yang pertama sentiasa benar.Maksudnya ialah
if "phpinfo" in url
keranaif "webshell"
sentiasa berlaku.Penyelesaian pada dasarnya adalah seperti yang dikatakan @lock:
Jika terdapat banyak perkataan yang digunakan untuk dipadankan hari ini:
Keputusan:
urlcontain(url, lst)
Anda boleh bertanyaurl
jika terdapat sebarang rentetanlst
dalamDengan cara ini, anda tidak akan menulis pernyataan if terlalu panjang apabila membandingkan sepuluh kata kunci.
Sudah tentu anda boleh menggunakan
re
, tetapi saya secara peribadi tidak sukare
itu sahaja...Soalan yang saya jawab: Python-QA