Atom dalam perwakilan ungkapan biasa php

Atom

Atom ialah unit terkecil dalam ungkapan biasa. Ungkapan biasa yang sah mesti mengandungi sekurang-kurangnya satu atom.

Semua aksara yang kelihatan dan tidak kelihatan ialah atom

Penjelasan: Kami melihat ruang, pemulangan pengangkutan, suapan baris, 0-9, A-Za-z, Cina , tanda baca tanda, dan simbol khas adalah semua atom.

Sebelum melakukan contoh atom, mari kita terangkan dahulu fungsi, preg_match:

int preg_match ( string $regular, string $string[, array &$result] )

Fungsi: Padankan pembolehubah $rentetan berdasarkan $pembolehubah biasa. Jika wujud, kembalikan bilangan padanan dan letakkan hasil yang sepadan ke dalam pembolehubah $result. Jika tiada keputusan ditemui, 0 dikembalikan.

Nota: Di atas adalah parameter utama yang biasa digunakan oleh preg_match. Saya tidak menyenaraikan beberapa parameter lain di atas. Kerana dua parameter lain terlalu jarang berlaku.

Mari kita buktikan melalui eksperimen:

<?php
//定义一个变量叫zz,放正则表达示。为了方便大家记忆,如果你英文比较ok,建议把变量名还是写成英文的$pattern。
$zz = '/a/';

$string = 'ddfdjjvi2jfvkwkfi24';

if(preg_match($zz, $string, $matches)){
   echo '匹配到了,结果为:';
   var_dump($matches);
}else{
   echo '没有匹配到';
}

?>

Oleh kerana apa yang saya mahukan ialah padanan a, dan $string tidak wujud a, jadi ia tidak berjaya.

<?php
$zz = '/wq/';

$string = 'ssssswqaaaaaa';

if(preg_match($zz, $string, $matches)){
   echo '匹配到了,结果为:';
   var_dump($matches);
}else{
   echo '没有匹配到';
}

?>

Terdapat wq selepas s dalam rentetan di atas, jadi perlawanan itu berjaya.

Seterusnya mari cuba padankan ruang:

<?php
$zz = '/ /';

$string = 'sssssw aaaaa';

if(preg_match($zz, $string, $matches)){
   echo '匹配到了,结果为:';
   var_dump($matches);
}else{
   echo '没有匹配到';
}

?>

Hasil pelaksanaan adalah seperti berikut:

QQ截图20161114135142.png

Disebabkan ini, $ rentetan ialah Terdapat ruang selepas aksara w pembolehubah. Jadi perlawanan itu berjaya dan jenis rentetan dikeluarkan dengan panjang 1. Cuma mata kasar kita tidak nampak dan tidak nampak rentetan ini.

Atom yang ditanda khas

原子说明
d匹配一个0-9
D除了0-9以外的所有字符
wa-zA-Z0-9_
W除了0-9A-Za-z_以外的所有字符
s匹配所有空白字符n t r 空格
S匹配所有非空白字符
[ ]指定范围的原子


Anda perlu ingat ini, yang terbaik adalah mencapai tahap imlak. Apabila menghafal, ingat secara berpasangan, d sepadan dengan 0-9, maka D adalah semua aksara kecuali 0-9.
Perkara di atas telah diterangkan dengan sangat jelas. Mari kita jalankan eksperimen untuk mempelajari langkah demi langkah.

Apabila anda belajar, sila pastikan anda mencapai tahap imlak untuk atom ini. Kerana apabila kami melakukan eksperimen pada masa hadapan, anda akan mempelajarinya sedikit demi sedikit.

d sepadan dengan nilai 0-9

<?php
$zz = '/\d/';

$string = '我爱喝9你爱不爱喝';

if(preg_match($zz, $string, $matches)){
   echo '匹配到了,结果为:';
   var_dump($matches);
}else{
   echo '没有匹配到';
}

?>

D sepadan dengan nilai selain 0-9

<?php
$zz = '/\D/';

$string = '121243中23453453';

if(preg_match($zz, $string, $matches)){
   echo '匹配到了,结果为:';
   var_dump($matches);
}else{
   echo '没有匹配到';
}

?>

Perlawanan berjaya dan perlawanan itu berjaya. Kerana ia bukan watak antara 0-9.

w sepadan dengan a-zA-Z0-9_

<?php
$zz = '/\w/';

$string = '新中_国万岁呀万岁';

if(preg_match($zz, $string, $matches)){
   echo '匹配到了,结果为:';
   var_dump($matches);
}else{
   echo '没有匹配到';
}

?>

Perlawanan berjaya dan garis bawah dipadankan.

W sepadan dengan bukan-a-zA-Z0-9_

<?php
$zz = '/\w/';

$string = 'afasABCWEQR44231284737';

if(preg_match($zz, $string, $matches)){
   echo '匹配到了,结果为:';
   var_dump($matches);
}else{
   echo '没有匹配到';
}

?>

Gagal dipadankan. Kerana, semua di atas adalah a-zA-Z0-9_, dan tidak ada yang bukan a-zA-Z0-9_.

s memadankan semua aksara ruang kosong n ruang

<?php
$zz = '/\s/';

$string = "中国万
岁";

if(preg_match($zz, $string, $matches)){
   echo '匹配到了,结果为:';
   var_dump($matches);
}else{
   echo '没有匹配到';
}

?>

berjaya dipadankan kerana terdapat pemulangan pengangkutan.

S aksara bukan kosong

<?php
$zz = '/\s/';

$string = "        
         a       ";

if(preg_match($zz, $string, $matches)){
   echo '匹配到了,结果为:';
   var_dump($matches);
}else{
   echo '没有匹配到';
}

?>

berjaya dipadankan. Walaupun terdapat ruang, kereta kembali dan lekukan padanya. Walau bagaimanapun, terdapat watak bukan ruang putih a. Oleh itu, perlawanan itu berjaya.

[] Atom dalam julat yang ditentukan

<?php

$zz = '/[0-5]\w+/';

$string = '6a';

$string1 = '1C';

if(preg_match($zz, $string, $matches)){
   echo '匹配到了,结果为:';
   var_dump($matches);
}else{
   echo '没有匹配到';
}

?>

Kesimpulan:
Dalam contoh di atas, 0-5 gagal sepadan dengan $string , manakala $string1 berjaya. Kerana, nilai pertama dalam $string ialah 6, yang bukan dalam julat [0-5].

<?php

$zz = '/[a-zA-Z0-9_]\w/';

$string = 'ab';

$string1 = '9A';

if(preg_match($zz, $string, $matches)){
   echo '匹配到了,结果为:';
   var_dump($matches);
}else{
   echo '没有匹配到';
}

?>

Kesimpulan:

$string dan $string1 kedua-duanya berjaya dipadankan. Kerana w ialah [a-zA-Z0-9_]

<?php

$zz = '/[abc]\d+/';

$string = 'a9';

$string1 = 'b1';

$string2 = 'c5';

$string3 = 'd4';


if(preg_match($zz, $string, $matches)){
   echo '匹配到了,结果为:';
   var_dump($matches);
}else{
   echo '没有匹配到';
}

?>

Kesimpulan:

$string, $string1, $string2 berjaya dipadankan, tetapi $string3 tidak berjaya. Kerana $string3 melebihi julat [abc], ia bermula dari d.

[^ aksara] tidak sepadan dengan aksara dalam julat yang ditentukan

<?php

$zz = '/[^0-9A-Za-z_]/';

$string = 'aaaaab311dd';

$string1 = '!$@!#%$#^##';

if(preg_match($zz, $string, $matches)){
   echo '匹配到了,结果为:';
   var_dump($matches);
}else{
   echo '没有匹配到';
}

?>

Kesimpulan:

1. Memadankan $string failed , tetapi ia berjaya apabila memadankan $string1. Kerana terdapat watak circumflex di dalam kurungan segi empat sama.

2.^ Fungsi aksara circumflex di dalam kurungan segi empat sama bukan untuk memadankan aksara di dalam kurungan segi empat sama.

Ringkasan:

原子等价式
w[a-zA-Z0-9_]
W[^a-zA-Z0-9_]
d[0-9]
D[^0-9]
s[ tnfr]
S[^ tnfr]
Meneruskan pembelajaran
||
<?php $zz = '/[^0-9A-Za-z_]/'; $string = 'aaaaab311dd'; $string1 = '!$@!#%$#^##'; if(preg_match($zz, $string, $matches)){ echo '匹配到了,结果为:'; var_dump($matches); }else{ echo '没有匹配到'; } ?>
  • Cadangan kursus
  • Muat turun perisian kursus