Rumah >pembangunan bahagian belakang >Tutorial Python >Apakah Perbezaan Utama Antara `re.match` dan `re.search` Python?

Apakah Perbezaan Utama Antara `re.match` dan `re.search` Python?

DDD
DDDasal
2024-12-22 12:54:17657semak imbas

What's the Key Difference Between Python's `re.match` and `re.search`?

Memahami Perbezaan Utama Antara re.match dan re.match

Dalam modul semula Python, padanan() dan carian() berfungsi memainkan peranan yang berbeza dalam padanan corak. Perbezaan utama terletak pada titik anchornya.

re.match

Fungsi match() mengesahkan jika corak wujud pada permulaan rentetan input. Ia tidak mengambil kira rentetan yang lain, memastikan bahawa perlawanan berlaku secara eksklusif pada permulaan. Ini bermakna walaupun corak muncul di tempat lain dalam rentetan, re.match tidak akan mengembalikan hasil.

re.search

Sebaliknya, re.search memeriksa keseluruhan rentetan input, mencari sebarang kejadian corak. Ia mengembalikan objek padanan jika corak ditemui di mana-mana dalam rentetan. Fungsi ini kurang ketat berbanding re.match, kerana ia tidak memerlukan corak untuk memulakan rentetan.

Pertimbangan Utama

Apabila memilih fungsi yang hendak digunakan, pertimbangkan yang berikut:

  • Gunakan re.match apabila anda perlu memastikan bahawa corak berlaku pada permulaan rentetan.
  • Gunakan re.search apabila anda ingin mencari sebarang kemunculan corak, tanpa mengira kedudukannya dalam rentetan.
  • re.match biasanya lebih pantas daripada re.search kerana ia mempunyai ruang carian yang lebih kecil.

Contoh Dunia Sebenar

Kepada menggambarkan perbezaannya, mari kita pertimbangkan rentetan berikut:

"This is a sentence with multiple words."

Menggunakan re.match dengan corak "This" akan berjaya, manakala menggunakan re.search juga akan berjaya kerana "This" muncul pada permulaan rentetan. Walau bagaimanapun, jika kita mencari corak "dengan," hanya re.search akan mengembalikan hasil kerana "dengan" tidak memulakan rentetan.

Sekarang, mari kita pertimbangkan rentetan dengan baris baharu:

"Line 1\nLine 2"

Menggunakan re.match("^Line 2", string, re.MULTILINE) akan gagal kerana "^" berlabuh pada permulaan rentetan dan tidak sepadan selepas baris baharu. Walau bagaimanapun, re.search("^Line 2", string, re.MULTILINE) akan berjaya kerana re.search tidak mempunyai kekangan kedudukan yang sama.

Atas ialah kandungan terperinci Apakah Perbezaan Utama Antara `re.match` dan `re.search` Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn