Menggunakan Lookaheads untuk Mengawal Panjang Rentetan dalam Ungkapan Biasa
Pengkuantiti ungkapan biasa dalam sauh selalunya membawa kepada ralat apabila cuba mengehadkan panjang rentetan. Penyelesaiannya? Pandang ke hadapan! Berikut ialah cara untuk menguatkuasakan sekatan panjang aksara dengan berkesan:
<code>^(?=.{1,15}$)[a-zA-Z0-9]*[^$%^&*;:,?()""']*$</code>
Mengapa Pandangan Ke Depan Penting
Kuantifier tidak serasi dengan sauh. Lookaheads menyediakan penyelesaian. Pandangan ke hadapan (?=.{1,15}$)
, diletakkan sejurus selepas sauh permulaan rentetan (^
), menggunakan pengkuantiti ({1,15}
) untuk menyemak 1 hingga 15 aksara, diikuti dengan sauh akhir rentetan ($
). Ini memastikan keseluruhan rentetan memenuhi kekangan panjang.
Mengendalikan Rentetan Berbilang Talian
Untuk rentetan dengan aksara baris baharu, gunakan binaan [sS]
dalam pandangan hadapan:
<code>^(?=[\s\S]{1,15}$)[a-zA-Z0-9]*[^$%^&*;:,?()""']*$</code>
Ungkapan yang diubah suai ini mengendalikan rentetan yang mengandungi pemisah baris dengan tepat. Dengan menggunakan pandangan ke hadapan, anda boleh menguatkuasakan sekatan panjang dengan pasti dalam ungkapan biasa anda, menjamin bahawa keseluruhan rentetan input mematuhi keperluan yang anda tentukan.
Atas ialah kandungan terperinci Bagaimanakah saya dapat menguatkuasakan had panjang aksara dalam ekspresi biasa menggunakan Lookaheads?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!