Dalam artikel sebelumnya "Cara untuk mengalih keluar aksara lain dan meninggalkan hanya nombor dalam pembelajaran rentetan PHP", kami memperkenalkan penggunaan fungsi for loop dan in_array() atau is_numeric() untuk mengekstrak kaedah rentetan untuk aksara angka. Kali ini kami meneruskan kajian dan amalan rentetan PHP dan memperkenalkan beberapa kaedah lain untuk mengekstrak aksara angka dalam rentetan.
Mengekstrak aksara berangka daripada rentetan pada asasnya ialah operasi penapisan rentetan. Apabila saya melihat penapisan rentetan, saya terfikir tentang "ungkapan biasa".
Ungkapan biasa ialah formula logik untuk operasi rentetan. Ia menggunakan beberapa aksara khusus yang telah ditetapkan dan gabungan aksara khusus ini untuk membentuk "rentetan peraturan" " ini digunakan untuk menyatakan penapisan logik untuk rentetan.
Ekspresi biasa membina corak dengan peraturan tertentu, membandingkannya dengan maklumat rentetan input dan menggunakannya dalam fungsi tertentu untuk mencapai operasi seperti padanan rentetan, carian, penggantian dan pembahagian.
Mari lihat cara menggunakan ungkapan biasa untuk menapis rentetan, mengekstrak hanya aksara angka dalam rentetan dan mengembalikan subrentetan yang terdiri daripada aksara angka ini.
Sebagai contoh, kami memberikan rentetan berikut
$str ='0我是123456一段测试的字789符串0';
dan ingin mengembalikan subrentetan "01234567890
" yang terdiri daripada aksara angka!
Kaedah 1. Gunakan fungsi preg_replace()
Analisis kod kunci di atas:
preg_replace("/[^0-9]/", "", $str)
bermaksud Untuk memadankan aksara selain daripada nombor antara 0 dan 9, dan gantikan aksara ini dengan aksara nol, hanya padamkan aksara ini. Kemudian hanya aksara angka yang tinggal, jadi hasil output ialah:
Mari kita lihat secara ringkas fungsi preg_replace()
Fungsi preg_replace() boleh dilaksanakan Carian dan penggantian ungkapan biasa ialah fungsi pemprosesan penggantian rentetan yang berkuasa Format sintaksnya ialah "preg_replace($pattern, $replacement, $subject [, $limit = -1 [, &$count]])
", yang bermaksud untuk mencari corak padanan bahagian dalam subjek dan menggantikannya dengan had parameter pilihan digunakan untuk Tetapkan bilangan maksimum penggantian (nilai lalai ialah -1, tidak terhad).
Kaedah 2: Gunakan fungsi preg_match_all()
Analisis kod di atas:
preg_match_all('/d /',$str,$array)
bermaksud Cari rentetan $str
beberapa kali untuk subrentetan yang mengandungi hanya aksara angka antara 0 dan 9, dan letakkan hasil yang sepadan setiap kali dalam tatasusunan $array
. Mari kita gunakan var_dump($array)
untuk mengeluarkan tatasusunan ini dan lihat:
Anda akan mendapati tatasusunan hasil $array
ialah tatasusunan dua dimensi, dan unsur-unsur yang mengandungi hasil yang sepadan ialah tatasusunan dalam. Jika anda ingin menyambung elemen ini menjadi rentetan, anda perlu menyarangkan dua peringkat gelung foreach:
Dalam gelung peringkat pertama,
foreach($array as $arr){ }
memperuntukkan tatasusunan dalam sebagai nilai kepada $arr
, jadi tatasusunan yang perlu dilalui dalam gelung kedua menjadi $arr
foreach($arr as $value){ $result .= $value; }
Dalam setiap gelung, tetapkan nilai tatasusunan kepada pembolehubah $value, dan kemudian gunakan operator ".=
" untuk menyambungkannya ke dalam rentetan $result
, jadi pada permulaan $result
Memerlukan rentetan kosong.
Hasil output ialah:
Mari kita lihat secara ringkas fungsi preg_match_all(). Fungsi
preg_match_all() boleh mencari semua hasil dalam rentetan yang boleh memadankan ungkapan biasa Ia adalah fungsi yang melaksanakan format sintaksnya ialah
preg_match_all($pattern, $subject [, &$matches [, $flags = PREG_PATTERN_ORDER [, $offset = 0 ]]])
$pattern Ungkapan biasa
$subjek Rentetan untuk dipadankan
$padanan Semua hasil padanan (tatasusunan)
preg_match_all() akan sepadan dengan semua keputusan Jika anda ingin berhenti padanan selepas satu perlawanan yang berjaya, anda perlu menggunakan fungsi preg_match().
Itu sahaja jika anda ingin mengetahui perkara lain, anda boleh klik ini. → →tutorial video php
Akhir sekali, saya mengesyorkan anda membaca kursus klasik "Pemprosesan Rentetan PHP (Edisi Sutra Jantung Gadis Jade) ", ianya percuma~ datang dan belajar!
Atas ialah kandungan terperinci Pembelajaran rentetan PHP menggunakan penapis biasa untuk menapis aksara dan mengembalikan aksara angka. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!