<?php
header('Content-Type: text/html; charset=utf-8');
$pattern='/[^0-9A-Za-z_]/';
$string='! $@!#%$#^##';
if(preg_match($pattern, $string,$match)){
echo 'Matched, the result is:';
var_dump($match);
}
else {
bergema 'Tiada padanan';
}
?>
Output: Padan, hasilnya ialah: array(1) { [0]=> string(1) " }
Saya tidak faham $ Terdapat banyak rentetan yang tidak berada dalam julat [^0-9A-Za-z_], mengapa hanya satu '!' dikeluarkan?
preg_match() hanya sepadan sekali jika ia sepadan dengan kandungan yang memenuhi syarat, ia akan kembali serta-merta dan tidak akan terus sepadan, walaupun terdapat kandungan lain yang memenuhi syarat nanti.
preg_match() hanya padan sekali. Jika ia sepadan dengan kandungan yang memenuhi syarat, ia tidak akan terus sepadan Jika anda ingin memadankan semua kandungan yang memenuhi syarat, anda boleh menggunakan preg_match_all($pattern, $string, $arr. ), $arr akan menyimpan kandungan yang dipadankan