Rumah > pembangunan bahagian belakang > Tutorial Python > Bagaimanakah Saya Boleh Menggunakan Rentetan yang Dibekalkan Pengguna dengan Selamat sebagai Corak Regex dalam Python?

Bagaimanakah Saya Boleh Menggunakan Rentetan yang Dibekalkan Pengguna dengan Selamat sebagai Corak Regex dalam Python?

Mary-Kate Olsen
Lepaskan: 2024-12-31 00:57:11
asal
806 orang telah melayarinya

How Can I Safely Use User-Supplied Strings as Regex Patterns in Python?

Melepaskan Aksara Regex dalam Corak Bekal Pengguna

Apabila menggunakan input pengguna sebagai corak ungkapan biasa, adalah penting untuk menangani isu aksara yang mempunyai makna istimewa dalam sintaks regex. Sebagai contoh, niat pengguna untuk mencari "Perkataan" akan disalahtafsirkan sebagai kumpulan oleh enjin regex disebabkan kurungan. Untuk mengelakkan ini, kita perlu menganggap kurungan sebagai rentetan literal, bukan simbol regex.

Pendekatan Konvensional: Penggantian Manual

Satu kaedah untuk melepaskan aksara ini adalah dengan secara manual gantikan setiap kejadian dengan versi yang dilepaskan. Sebagai contoh, kita boleh menggantikan "(s)" dengan "(s)". Walau bagaimanapun, ini memerlukan mempertimbangkan setiap simbol regex yang mungkin, yang boleh menyusahkan.

Penyelesaian yang Lebih Baik: Fungsi re.escape

Penyelesaian yang lebih cekap ialah menggunakan semula Python Fungsi .escape(), yang secara automatik melepaskan aksara bukan abjad angka dalam rentetan. Ini membolehkan kami menganggap aksara regex khas sebagai rentetan literal.

Sebagai contoh, untuk mencari sebarang contoh "Perkataan" dalam teks, kita boleh menggunakan:

def simplistic_plural(word, text):
    word_or_plural = re.escape(word) + 's?'
    return re.match(word_or_plural, text)
Salin selepas log masuk

Fungsi ini mengembalikan objek padanan jika corak ditemui dalam teks.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menggunakan Rentetan yang Dibekalkan Pengguna dengan Selamat sebagai Corak Regex dalam Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan