Untuk mencocokkan seluruh kata, Anda akan menggunakan polanya (\w+)
Dengan asumsi Anda menggunakan PCRE atau yang serupa:
Tangkapan layar di atas diambil dari contoh langsung ini: http://regex101.com/r/cU5lC2
Mencocokkan seluruh kata pada baris perintah dengan (\w+)
Saya akan menggunakan shell interaktif phpsh di Ubuntu 12.10 untuk mendemonstrasikan mesin regex PCRE melalui metode yang dikenal sebagai preg_match
Mulai phpsh, masukkan beberapa konten ke dalam variabel, cocokkan dengan kata.
el@apollo:~/foo$ phpsh
php> $content1 = 'badger'
php> $content2 = '1234'
php> $content3 = '$%^&'
php> echo preg_match('(\w+)', $content1);
1
php> echo preg_match('(\w+)', $content2);
1
php> echo preg_match('(\w+)', $content3);
0
Metode preg_match digunakan mesin PCRE dalam bahasa PHP untuk menganalisis variabel: $content1
, $content2
dan $content3
dengan (\w)+
pola.
$ content1 dan $ content2 mengandung setidaknya satu kata, $ content3 tidak.
Cocokkan sejumlah kata literal pada baris perintah dengan (dart|fart)
el@apollo:~/foo$ phpsh
php> $gun1 = 'dart gun';
php> $gun2 = 'fart gun';
php> $gun3 = 'farty gun';
php> $gun4 = 'unicorn gun';
php> echo preg_match('(dart|fart)', $gun1);
1
php> echo preg_match('(dart|fart)', $gun2);
1
php> echo preg_match('(dart|fart)', $gun3);
1
php> echo preg_match('(dart|fart)', $gun4);
0
Variabel gun1 dan gun2 berisi string dart atau fart. gun4 tidak. Namun mungkin masalah mencari kata yang fart
cocokfarty
. Untuk memperbaikinya, terapkan batas kata dalam regex.
Cocokkan kata literal pada baris perintah dengan batas kata.
el@apollo:~/foo$ phpsh
php> $gun1 = 'dart gun';
php> $gun2 = 'fart gun';
php> $gun3 = 'farty gun';
php> $gun4 = 'unicorn gun';
php> echo preg_match('(\bdart\b|\bfart\b)', $gun1);
1
php> echo preg_match('(\bdart\b|\bfart\b)', $gun2);
1
php> echo preg_match('(\bdart\b|\bfart\b)', $gun3);
0
php> echo preg_match('(\bdart\b|\bfart\b)', $gun4);
0
Jadi itu sama dengan contoh sebelumnya kecuali bahwa kata fart
dengan \b
batas kata tidak ada dalam konten: farty
.