Komputer, Pemrograman
Ekspresi reguler (PHP). PHP: ekspresi reguler contoh
Seberapa besar dan beragam dunia informasi, dengan cepat, memperluas dan mengembangkan. Setiap keputusan - hanya titik dalam proses keseluruhan gerakan. Pengetahuan dan pengalaman memungkinkan untuk memahami proses pencapaian tujuan, tetapi tidak pernah - bukan hasil dari prestasi. Diragukan bahwa kita dapat berbicara di masa mendatang pada hasil, tetapi penting bahwa proses berjuang untuk itu adalah proses yang signifikan dan obyektif diperlukan.
"Keinginan dan / atau banyak uang" tidak menciptakan suatu algoritma yang mampu itu, dan tentu saja "bebas" manusia tidak, terutama ketika ia tidak berpikir tentang apa yang dia lakukan. Dalam situasi apa pun masalah informasi setidaknya memiliki satu titik buta, tetapi bagi dia, biasanya langsung, yang lain bersih noda yang terlihat, dan belum tentu bahwa mereka semua bunga putih.
teknologi internet telah menyederhanakan akses ke informasi, tapi pertanyaannya adalah - bagaimana menempatkan pada memiliki yang diinginkan - tidak disederhanakan, dan diperoleh baru "volume" kerja. Dan meskipun PHP ekspresi reguler kesenjangan jelas tidak habis, mereka adalah langkah maju yang signifikan.
fungsi sederhana + algoritma = pola
Menawarkan ekspresi reguler, PHP algoritma secara signifikan mengurangi konten, tetapi fungsi pencarian / penggantian dan pengolahan algoritma yang biasa ditemukan tidak hilang pentingnya mereka. Ide-ide baru tidak meramalkan revolusi informasi. Yang paling yang bisa diharapkan - kode kompak dan meningkatkan pengembang kemampuan untuk merumuskan permintaan pencarian dengan benar.
Anda harus tahu dan oleskan pada PHP ekspresi reguler. Contoh meyakinkan dan efektif. Tetapi harus memberikan laporan bahwa dengan munculnya mesin pencari baru, pusat gravitasi bergeser ke pola - semacam mekanisme, walaupun sebenarnya diganti dengan satu set fungsi sederhana pencarian, kondisi, loop, dan operator lainnya.
memiliki:
- kualitas dan alat yang modern - itu baik;
- melihat dan menggunakan pengalaman rekan-rekan adalah masalah;
- menggabungkan realitas dan ide maya - jaminan keberhasilan.
Mencapai pengetahuan tentang bagaimana itu perlu untuk memahami masalah, untuk mengatasinya, sering lebih penting daripada hasil yang spesifik.
Ekspresi reguler di PHP diwakili oleh sejumlah fungsi dalam sintaks bahasa dan banyak contoh yang berguna di Internet. Karena sintaks pilihan aplikasi tertentu hanya dibatasi oleh imajinasi pengembang, tetapi sleuet perlu diingat bahwa tidak semua template akan bekerja. Menggunakan validasi PHP ekspresi reguler adalah penting.
Karakter pencarian sederhana (string)
Simbol - ini tidak selalu satu byte, dan sering simbol, sebagai sebuah chip, memiliki makna yang tepat di samping. Encoding menentukan karakter yang terlihat dalam kode berbeda. Simbol mungkin memiliki beberapa pilihan: "$" = "USD" = "USD", ... - adalah makna yang tepat dari suatu tempat sesuatu, tetapi tidak harus dekat, karena mata uang. Namun, makna yang tepat mungkin terletak pada variabel PHP, yang selalu dimulai dengan karakter "$", tetapi tidak dapat memulai dengan "USD" dan "USD".
Simbol program mungkin nama fungsi (string) dalam konteks: mengenali dan memenuhi - itu dari pemrograman berorientasi objek dinamis, ketika struktur, fungsi, PHP reguler ekspresi yang digunakan secara langsung untuk membuat keputusan. Ditemukan simbol "berubah", yaitu, dengan sendirinya menentukan apa yang harus dilakukan di tempat di mana ia ditemukan, dan cara itu, "ia dianggap" diperlukan.
Mencari karakter / baris - tidak seperti latihan sederhana, dan informasi lebih lanjut, yang jelas lebih baik. Hal ini tidak selalu perlu untuk menemukan yang terbaik sepuluh di harga pangan, memilih resep lezat kue ulang tahun, atau untuk menentukan kontraktor untuk langit-langit palsu.
Sering perlu untuk mengoptimalkan algoritma sederhana tidak informasi aritmatika sederhana atau dalam kondisi sulit, ketika karakter yang diinginkan untuk memilih dari database, dan garis di mana perlu untuk menemukan - seratus situs. Harga ini sama dengan memilih karakter dari waktu sampel database, dan harga di mana mencarinya - waktu pencarian ratusan terkenal situs.
simbol Lone - itu bukan frase, dan tidak beberapa kalimat, dia bisa berada di mana saja dan sekecil diinginkan. Bagaimana menentukan apa yang ditemukan adalah yang diinginkan?
Contoh: mencari harga
Hanya menemukan teks simbol "$" - sedikit. Periksa yang dihadapinya angka, ia tidak selalu cukup. Jika Anda memberikan titik atau nomor sebelum simbol "$" adalah jaminan bahwa harga di mana simbol moneter yang depan tidak akan diperhitungkan. Ada juga dihilangkan harga, yang pada umumnya tidak ditentukan mata uang, tetapi pada halaman itu adalah instruksi eksplisit.
Secara umum, solusi dari masalah dengan cara biasa mengembang luar algoritma pengakuan dan memakan waktu. Sementara itu, menggunakan ekspresi reguler, jumlah PHP tidak akan menemukan masalah.
$ CContents = preg_match_all ( "/ [0-9] + ([\ $] | usd | y \ £ \ | ue) {1} / i.";
"Dengar e-mail - 2usd;
";
"Cari e-mail - 2u.e;
.";
"Kerja e-mail - UE2;
";
"Periksa e-mail - $ 13", $ aresult);
. '; '. meledak ( '', $ aresult [0]). '
'.
Akan menjawab: "2; 2usd, 2u.e.", Tapi tidak menemukan apa pun di baris: "memeriksa e-mail - $ 13."
Menyediakan untuk kehadiran pola di depan atau di belakang karakter, Anda dapat mencapai sukses dengan cepat dalam banyak kasus.
$ CContents = preg_match_all ( "/ ([0-9] + ([\ $] | usd | y \ £ \ |. Ue) {1}) | (([$] | usd | y \ £ \. | ue) {1} [0-9] +) / i ";
"Dengar e-mail - 2usd;
";
"Cari e-mail - 2u.e;
.";
"Kerja e-mail - UE2;
";
"Periksa e-mail - $ 13", $ aresult);
. '; '. meledak ( '', $ aresult [0]). '
'.
Hasil: "4; 2usd, 2u.e., UE2, $ 13."
Tentang logika yang tidak diinginkan
penawaran Regular Expressions PHP, serta alat-alat lainnya, tetapi tidak perlu untuk menerapkan mereka sesuai dengan aturan atau menggunakan fungsi lain yang disediakan huruf kecil cara sintaks.
Mungkin sebelum awal pencarian diperlukan untuk beralih ke array, dan tempat di mana kita mencari, dipecah menjadi komponen sesuai dengan kriteria sebelumnya. Hanya beberapa meledak () dan meledak () sering menyederhanakan dan mempercepat keputusan.
Misalnya, sebagai akibat dari pekerjaan awal membentuk sebuah array dari string (data) di kabupaten pada berapa banyak kentang yang dikumpulkan setiap desa: Unknown ImyaDerevnya dan volume dikumpulkan, dan jika negara menjalankan beberapa perusahaan di array string adalah ImyaDerevnya.ImyaPredpriyatie dan nilai melalui "; " dan sebagainya semua perusahaan. Hitung jumlah total yang dikumpulkan dalam hal ini tidak akan mungkin, tetapi jika Anda melakukan impode ( ";", $ aresult), akan menjadi salah satu garis panjang, di mana pasangan - ImyaDerevnya / ImyaDerevnya.ImyaPredpriyatie - koleksi ukuran - akan ditransfer melalui ";". Melakukan reverse pada yang dihasilkan, meledak ( ";", $ aresult) - array dari semua, yang dikumpulkan dan bagaimana hal itu dikumpulkan, dan kemudian dengan menghapus garis dari semua karakter non-numerik, kita hanya nomor, jumlah yang volume total yang dikumpulkan.
Dalam contoh ini, ekspresi reguler di PHP memungkinkan untuk tidak melihat terlalu banyak, mereka ekstrak mudah dan terjangkau nilai-nilai numerik yang diinginkan. Cepat dan efisien, tidak peduli berapa lama mungkin nama-nama desa dan bisnis. Solusi ini tidak ideal, tapi itu menunjukkan bahwa tidak selalu mengikuti aturan seharusnya. Hal ini sering mungkin untuk mencapai yang diinginkan dengan cara yang tidak biasa.
Abstrak dari sisi teknis, pengkodean
Sintaks algoritma tidak mengatakan bagaimana tampak dalam kenyataan. Namun, menyediakan pengkodean yang sama halaman, dan baris naskah (yang dicari di mana gambar) dapat terjun ke masalah adalah aspek teknis.
Salah satu harus tidak hanya tahu apa yang harus dicari, tapi di mana untuk melakukannya, kapan, berapa banyak, apa yang harus berubah dan bagaimana. Secara formal PHP ekspresi reguler dijalankan sebagai mekanisme fitur lengkap lengkap sendiri, tetapi karena berbagai alasan, realisasi mitra dalam banyak bahasa yang berbeda. Sebagai aturan umum, sebelum Anda memindahkan pola tertentu di lingkungan alat tertentu untuk tugas tertentu, perlu untuk melaksanakan adaptasi berkualitas tinggi, periksa semua pilihan yang mungkin untuk sumber data.
Bahkan jika Anda menggunakan pengalaman Anda sendiri berkembang di PHP, biasa ekspresi, contoh, template dan desain membutuhkan pemeriksaan hati-hati. Dinamis mengubah fungsi bahasa, sintaksis dan runtime.
Struktur dan isi dari template
Apa yang sebelumnya ditulis dalam bentuk kombinasi fungsi pencarian, conditional, operasi penggantian, menyisipkan, menghapus, adalah string karakter menurut aturan tertentu - pola ekspresi reguler. Bahkan, sejumlah besar dikodekan dengan cara tertentu dan dieksekusi oleh aturan khusus.
Sama seperti tidak mungkin untuk melakukan semua operator bahasa debugging, Anda tidak dapat debug pola ekspresi reguler, proses ini hanya bisa meniru. Sebagai aturan umum diadopsi versi: karya - tidak bekerja. Sintaksnya sangat sederhana, meskipun persepsi, terutama di awal, sangat sulit.
Contoh ekspresi sederhana
Dalam perwujudan sederhana, template cocok string:
$ CContents = preg_match ( "/ asdf / i", "asdf", $ aresult). '; '. meledak ( '', $ aresult).
Hasilnya akan "1; asdf", karena fungsi selesai operasi pada pertama kali bertemu template matching. Hasilnya akan sama, jika kita melihat baris "aaaasdf" sejalan "zzzasdfvvv". Jika Anda menentukan karakter pertama dan / atau terakhir, hasilnya akan menjadi jelas:
$ CContents = preg_match ( "/ ^ asdf / i", "asdf", $ aresult). '; '. meledak ( '', $ aresult). '
';
$ CContents. = Preg_match ( "/ asdf $ /", "asdf", $ aresult). '; '. meledak ( '', $ aresult). '
'.
Hasilnya akan: 1; asdf1; asdf.
Simbol-simbol "*" dan "$" menunjukkan di mana untuk memulai dan pola berakhir. Hasil fungsi preg_match - jumlah pertandingan, itu bisa 0, 1, atau salah, jika kesalahan terdeteksi. Yang ketiga pilihan - array - ditempatkan hanya ditemukan elemen. Dalam kasus menggunakan fungsi preg_match_all () pencarian terus garis akhir.
$ CContents = preg_match ( "/ asdf / i", "asdf123asdf456asdf789", $ aresult). '; '. meledak ( '', $ aresult). '
';
$ CContents. = Preg_match_all ( "/ asdf / i", "asdf123asdf456asdf789", $ aresult). '; '. meledak ( '', $ aresult [0]). '
'.
hasil:
1; asdf
3; asdf, asdf, asdf.
Jika Anda tidak menggunakan instruksi khusus, masing-masing karakter mendefinisikan dirinya dan tempatnya, terlepas dari coding line dan Template coding. programmer harus memastikan bahwa pengkodean elemen ini adalah benar dalam kaitannya dengan setiap halaman lain dan encoding.
fungsi PHP untuk bekerja dengan ekspresi reguler
ekspresi reguler untuk PHP mewakili karakter string yang direkam dengan cara tertentu. Biasanya, dengan analogi dengan bahasa pemrograman lain, mereka ditulis dalam simbol "/" ... "/" dan ditempatkan dalam tanda kutip, Anda dapat menggunakan satu atau dua tergantung pada algoritma.
Fungsi utama php preg pertandingan ekspresi reguler menggunakan kedua pertandingan pola dan berhenti itu di lokasi pertama, varian daripadanya dengan _all akhiran menemukan semua pertandingan, dan output array tersebut. Fungsi preg menggantikan menggantikan masing-masing sesuai dengan template, dapat bekerja dengan array, yang memungkinkan desain pencarian dan melakukan penggantian berbagai pilihan.
pilihan menarik untuk bekerja dengan ekspresi reguler dapat dikembangkan dengan menggunakan fungsi preg_replace_callback yang tidak mengambil teks pengganti, dan nama fungsi, yang akan melaksanakan penggantian tersebut. Selain nilai praktis yang dapat Anda menerapkan mekanisme memeriksa pola, bahwa pengembangan dan debugging yang terakhir memainkan peran penting.
Lingkup ekspresi reguler
Karena bahasa hypertext yang diformalkan informasi ke tingkat yang lebih besar mereka adalah bahan awal. Mengembangkan sejumlah besar template dan desain yang memungkinkan untuk memproses data dalam jumlah besar secara efisien. Sebagian besar dari pekerjaan ini dilakukan mekanisme dibangun ke dalam berbagai sistem manajemen konten (CMS).
Tak heran, banyak CMS menjadi standar de facto untuk membangun situs, dan disertai oleh perusahaan (diperbaharui) perangkat lunak, mereka tidak membuat perlu untuk melaksanakan pengembangan pola sendiri. Namun, di luar sistem tersebut memiliki pengalaman dengan ekspresi reguler sangat berguna.
ekspresi reguler dan informasi real
Area penting dari penerapan ekspresi reguler di perpustakaan PHP membentuk PHPOffice munculnya. Bekerja dengan dokumen, spreadsheet, dan selalu memiliki penting dan OOXML standar mungkin tidak hanya untuk membongkar dokumen yang sebenarnya, tetapi juga untuk membentuk program mereka.
Berkat pengembangan hypertext dan PHP bahasa pada khususnya, ada kesempatan nyata untuk mengotomatisasi "produksi" dokumen "bentuk standar", misalnya, faktur untuk pembayaran, laporan, rencana bisnis, dan objek informasi lainnya, struktur dan isi sebenarnya setuju untuk formalisasi dan otomatisasi.
Sehubungan dengan aplikasi untuk menggambarkan proses perkembangan bahasa OOXML dari ekspresi reguler sangat berbeda dari kerja tradisional dengan bahasa markup HTML dan CSS di tempat pertama. Dokumen yang sebenarnya, kecuali menandai dan di samping konten yang sebenarnya memiliki banyak detail. Sebagai contoh, sebuah dokumen yang dibuat secara otomatis oleh program, akan memiliki konten yang kuat dan akurat. Dokumen dibentuk atau orang dirawat, akan memiliki konten yang, dicat lebih pluralitas tag. Setiap pekerjaan dengan dokumen mengarah pada fakta bahwa semantik mungkin satu, tetapi dicat dalam jumlah yang berbeda pada desain yang berbeda.
Informasi alami dan situasi
Seseorang selalu tertarik pada solusi dari masalah, yang telah dipentaskan informasi dan, sebagai hasilnya, informasi yang sama akan diberikan. Penyajian laporan masalah dalam bentuk dokumen, seseorang mendapat semantik tertentu, yang dalam spesifikasi ahli (amandemen, menjelaskan kata-kata, menghapus, mengedit) tidak hanya menyebabkan beberapa versi dokumen, tetapi juga untuk versi dengan isi yang berbeda.
Secara khusus, tugas yang ditetapkan oleh frase "Memecahkan uranenie persegi" setelah editing akan terlihat seperti ini: "Untuk memecahkan persamaan kuadrat" Jika pada awalnya kesalahan pertama telah diperbaiki, dan kemudian yang kedua, maka informasi alami dalam gaya OOXML akan terlihat seperti: "[diselesaikan] [] [persegi] [e] [] [sorakan] [b] [nenie]", tapi ini tidak menjamin bahwa ini adalah tugas akan muncul di tag OOXML (kurung meniru kurung tag).
Untuk mengumpulkan informasi dapat dengan mudah setelah setiap tugas proses editing, tapi setiap kali prosedur ini akan dilakukan oleh berbagai algoritma. ekspresi reguler, sebagai semacam alat formalisasi masalah informasi telah menjadi, pada dasarnya, berjalan jalan dari struktur formal dari hypertext untuk informasi alami.
Similar articles
Trending Now