Apabila cuba menentukan sama ada rentetan adalah berangka menggunakan regex "d", ia boleh didapati bahawa corak itu juga sepadan dengan alamat IP seperti "78.46.92.168:8000." Ini boleh mengelirukan, kerana seseorang mungkin menjangkakan bahawa "d" hanya sepadan dengan digit berangka. Untuk memahami sebab ini berlaku, anda perlu memahami kelakuan "d ".
Kelas aksara "d" sepadan dengan mana-mana aksara satu digit dalam julat ASCII (0-9). Pengkuantiti " " menandakan satu atau lebih kejadian unsur sebelumnya ("d" dalam kes ini), menunjukkan bahawa "d " akan sepadan dengan jujukan satu atau lebih digit.
Dalam rentetan contoh "78.46. 92.168:8000," jujukan "78" ialah padanan yang sah untuk "d ." Ia sepadan dengan 78 yang pertama, bukan keseluruhan rentetan. Memandangkan perlawanan berjaya, kod terus memanggil doStuff().
Untuk memadankan keseluruhan rentetan dan memastikan ia hanya mengandungi digit berangka , anda perlu menggunakan corak regex yang lebih khusus.
Atas ialah kandungan terperinci Mengapakah regex '\d ' sepadan dengan alamat IP seperti '78.46.92.168:8000' dan bukannya digit berangka sahaja?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!