Rumah >pembangunan bahagian belakang >Tutorial Python >Mengapakah `re.findall` Mengembalikan Senarai Kosong Sementara `re.search` Berfungsi dengan betul dengan Corak dan Rentetan yang Sama dalam Python 3.4.3?
re.findall Berkelakuan Anomali
Dilema:
Dalam skrip Python menggunakan Python 3.4 .3, kaedah re.search memberikan hasil yang dijangkakan apabila digunakan pada rentetan sumber tertentu menggunakan corak tertentu. Walau bagaimanapun, re.findall secara tidak jelas mengembalikan senarai kosong untuk corak dan rentetan sumber yang sama.
Penerokaan:
Anehnya, kaedah re.findall berkelakuan di luar jangkaan walaupun kelihatan memenuhi keperluan untuk mengekstrak padanan daripada rentetan berdasarkan corak.
Penyelesaian:
Setelah diperiksa dengan teliti, menjadi jelas bahawa dua faktor menyumbang kepada tingkah laku pelik ini:
Corak Dibetulkan:
Untuk mengurangkan isu ini dan berjaya mengeluarkan padanan, mengikut corak yang diperbetulkan sepatutnya bekerja:
-?\d*\.?\d+
Penjelasan:
Demonstrasi :
Menggunakan corak yang diubah suai, yang Kaedah re.findall kini dengan tepat mendapatkan semula senarai perlawanan yang dijangkakan:
['123', '3.1415926']
Atas ialah kandungan terperinci Mengapakah `re.findall` Mengembalikan Senarai Kosong Sementara `re.search` Berfungsi dengan betul dengan Corak dan Rentetan yang Sama dalam Python 3.4.3?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!