2010-12-01 22 views
5

Dize komutlarının bir dizisini ayrıştırma, Bir dizenin belirli bir anahtar kelime içerip içermediğini bilmem gerekiyor.Yanlışlıkla eşleşmeden PHP'de bir dizede tam bir sözcük nasıl bulunur?

Kulağa basit geldiğimi biliyorum, ancak sorun, komut anahtar kelimesi başka bir sözcüğün de parçası olabildiğinde ortaya çıkıyor.

Ör:

CHECKSOUND 
SOUND 
CHECK 

Yani geçerli satır CHECKSOUND, SES olup olmadığını kontrol veya komut GÖR gerekir. Sonra SOUND önce CHECKSOUND bulabilirsiniz

if(stristr($line,'SOUND') == true) 

ve böylece doğru ayrıştırma:

ben gibi bir şey kullanın.

Soru:

CHECKSOUND gibi başka bir sözcüğün parçası olarak bulursa SES ve oluşum SES görmezden gibi bütün bir kelimenin yalnızca bir dizge bulunan bir yolu var mı?

Burada basit bir şey kaçırdığına eminim.

cevap

19

Hedefi kolayca elde etmek için düzenli bir ifade kullanabilirsiniz. preg_match dokümantasyonlarından

Örnek 2: Yukarıdaki örnek duyarsız "ağ" durum için arama yapar i değiştirici, kullandığı

/* The \b in the pattern indicates a word boundary, so only the distinct 
* word "web" is matched, and not a word partial like "webbing" or "cobweb" */ 
if (preg_match("/\bweb\b/i", "PHP is the web scripting language of choice.")) { 
    echo "A match was found."; 
} else { 
    echo "A match was not found."; 
} 

not edin.

+0

Mükemmel yardım, teşekkürler. –

İlgili konular