Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimanakah saya memadankan subrentetan tertentu tanpa memasukkan aksara yang tidak diingini menggunakan regex tidak tamak dalam Python?

Bagaimanakah saya memadankan subrentetan tertentu tanpa memasukkan aksara yang tidak diingini menggunakan regex tidak tamak dalam Python?

DDD
DDDasal
2024-11-09 19:10:02965semak imbas

How do I match a specific substring without including unwanted characters using non-greedy regex in Python?

Ungkapan Biasa Tidak Tamak Python

Apabila berurusan dengan ungkapan biasa, operator * standard adalah tamak, bermakna ia cuba memadankan seberapa banyak daripada input yang mungkin. Walau bagaimanapun, terdapat senario di mana pendekatan tidak tamak diperlukan. Artikel ini meneroka penggunaan regex tidak tamak dalam Python, khususnya memfokuskan pada kes yang matlamatnya adalah untuk memadankan subrentetan tertentu tanpa memasukkan aksara yang tidak diingini.

Masalah

Pertimbangkan rentetan input berikut: "a (b) c (d) e"

Jika anda menggunakan biasa tamak standard ungkapan "(.)", Python akan memadankan "b) c (d". Ini kerana mengkuantifikasi ungkapan sebelumnya sebagai sifar atau lebih banyak kali dan tingkah laku tamak menyebabkannya sepadan sebanyak mungkin.

Penyelesaian

Untuk menjadikan regex tidak tamak, gunakan kelayakan ?. Ini memberitahu Python untuk memadankan ungkapan sesedikit mungkin, menghasilkan "(.?)" hanya sepadan dengan "b".

Python Pelaksanaan

import re

input_string = "a (b) c (d) e"
non_greedy_regex = r"(.*?)"

match = re.search(non_greedy_regex, input_string)
if match:
    print(match.group(1))

Output:

b

Kesimpulan

Kelayakan *? tidak tamak menyediakan cara yang mudah dan ringkas untuk mengawal tingkah laku ungkapan biasa dalam Python Dengan menyatakan bahawa padanan harus sesingkat mungkin, ia membolehkan anda tepat nyatakan subrentetan yang dikehendaki tanpa menyertakan aksara yang tidak diingini secara tidak sengaja.

Atas ialah kandungan terperinci Bagaimanakah saya memadankan subrentetan tertentu tanpa memasukkan aksara yang tidak diingini menggunakan regex tidak tamak 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