Rumah >pembangunan bahagian belakang >Tutorial Python >Mengapakah awalan r tidak selalu diperlukan untuk regex dalam Python?

Mengapakah awalan r tidak selalu diperlukan untuk regex dalam Python?

DDD
DDDasal
2024-10-19 17:08:30494semak imbas

Why is an r prefix not always required for regex in Python?

Python regex - r awalan

Sesetengah mungkin tertanya-tanya mengapa regex berikut berfungsi, walaupun tanpa awalan r:

<code class="python">import re
print (re.sub('\s+', ' ', 'hello     there      there'))</code>

Ia biasanya berpendapat bahawa awalan r diperlukan setiap kali urutan melarikan diri digunakan, tetapi contoh ini nampaknya bercanggah dengannya.

Jujukan melarikan diri dan rentetan mentah

Awalan r digunakan untuk mencipta "rentetan mentah" , yang bermaksud bahawa urutan pelarian dalam rentetan tidak akan ditafsirkan sebagai aksara khas. Ini boleh berguna apabila anda ingin menggunakan aksara yang biasanya ditafsirkan sebagai jujukan melarikan diri, seperti garis miring ke belakang ().

Dalam contoh di atas, jujukan melarikan diri s digunakan untuk memadankan satu atau lebih ruang putih watak. Tanpa awalan r, jujukan pelarian ini akan ditafsirkan sebagai aksara tab (t). Walau bagaimanapun, kerana awalan r digunakan, jujukan melarikan diri ditafsirkan secara literal dan sepadan dengan satu atau lebih aksara ruang kosong.

Pengecualian kepada peraturan

Terdapat beberapa pengecualian kepada peraturan yang melarikan diri jujukan mesti digunakan dengan awalan r. Satu pengecualian ialah n jujukan melarikan diri, yang digunakan untuk mewakili aksara baris baharu. Jujukan melarikan diri ini boleh digunakan tanpa awalan r, seperti yang ditunjukkan dalam contoh berikut:

<code class="python">print '\n'</code>

Satu lagi pengecualian ialah \ jujukan melarikan diri, yang digunakan untuk mewakili aksara garis miring ke belakang. Urutan melarikan diri ini juga boleh digunakan tanpa awalan r, seperti ditunjukkan dalam contoh berikut:

<code class="python">print '\'</code>

Kesimpulan

Awalan r tidak selalu diperlukan apabila menggunakan jujukan melarikan diri dalam Python. Walau bagaimanapun, secara amnya adalah idea yang baik untuk menggunakan awalan r untuk mengelakkan sebarang kekeliruan atau tingkah laku yang tidak dijangka.

Atas ialah kandungan terperinci Mengapakah awalan r tidak selalu diperlukan untuk regex dalam 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