Rumah >pembangunan bahagian belakang >C++ >Adakah \ d sangat kurang cekap daripada [0-9] atau [0123456789] dalam regex?

Adakah \ d sangat kurang cekap daripada [0-9] atau [0123456789] dalam regex?

Patricia Arquette
Patricia Arquetteasal
2025-01-31 18:36:10967semak imbas

Is d Really Less Efficient Than [0-9] or [0123456789] in Regex?

d'S kecekapan dalam ekspresi biasa tidak begitu efisien seperti [0-9]

Dalam perbincangan baru -baru ini, sesetengah orang mempersoalkan kecekapan menggunakan bukan

atau

dalam ungkapan biasa. Tidak disangka -sangka, ujian dalam enjin ekspresi biasa C#menunjukkan bahawa kecekapan [0123456789] lebih rendah daripada dua pilihan yang lain. [0-9] d Penyebab kecekapan rendah d

Nombor Unicode:

Mengandungi semua nombor Unicode, bukan hanya 0-9 biasa. Oleh itu, nombor bukan standard analitik boleh melambatkan kelajuan enjin ekspresi biasa.
  1. Fungsi tambahan yang tidak perlu: termasuk fungsi tambahan selain daripada d, ia mungkin memerlukan pemprosesan yang lebih rumit. Fungsi tambahan ini menjejaskan kecekapan.
  2. Hasil ujian d [0-9] Untuk membuktikan masalah ini, ujian berikut dilakukan:

10,000 rentetan rawak, setiap rentetan mengandungi 1,000 aksara, separuh daripadanya mengandungi nombor. setiap ekspresi biasa (

,

,

) masa untuk memproses rentetan yang dibelanjakan:
  • Ekspresi biasa Masa Peratusan masa berbanding d > 00: 00: 00.2141226 100% > 00: 00: 00.1357972 63.42% > 00: 00: 00.13888997 64.87%
  • Hasil menunjukkan bahawa dan
  • jauh lebih baik daripada d dari segi kecekapan. [0-9] [0123456789] Kesimpulan
正则表达式 时间 相对d的时间百分比
d 00:00:00.2141226 100%
[0-9] 00:00:00.1357972 63.42%
[0123456789] 00:00:00.1388997 64.87%
Walaupun dapat memberikan lebih banyak fungsi padanan digital, ia dikorbankan dari segi prestasi. Untuk aplikasi jenis utama, adalah disyorkan untuk menggunakan lebih ringkas

atau [0-9]. [0123456789]

Atas ialah kandungan terperinci Adakah \ d sangat kurang cekap daripada [0-9] atau [0123456789] dalam regex?. 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