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.
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.
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>
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!