Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Pembelajaran rentetan PHP menggunakan penapis biasa untuk menapis aksara dan mengembalikan aksara angka

Pembelajaran rentetan PHP menggunakan penapis biasa untuk menapis aksara dan mengembalikan aksara angka

青灯夜游
青灯夜游asal
2021-08-18 17:09:503578semak imbas

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:

Pembelajaran rentetan PHP menggunakan penapis biasa untuk menapis aksara dan mengembalikan aksara angka

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:

Pembelajaran rentetan PHP menggunakan penapis biasa untuk menapis aksara dan mengembalikan aksara angka

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 $resultMemerlukan rentetan kosong.

Hasil output ialah:

Pembelajaran rentetan PHP menggunakan penapis biasa untuk menapis aksara dan mengembalikan aksara angka

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!

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