2012-09-14 64 views
0

我想檢查字符串只包含幾個特定字。PHP preg_match檢查字符串與特定字

4bored4,4blur4,4blingeye4,4bathing4,4congratz4,4crisp4,4curse4,空白和點。

這裏是我的代碼

$s = '...... 4crisp4 4crisp4 4crisp4'; 

preg_match('/^[4bored4|4blur4|4blingeye4|4bathing4|4congratz4|4crisp4|4curse4| |\.]+$/',$s,$m); 

但與此$ S失敗= 'hahahha 4crisp4 4crisp4 4crisp4'; 爲什麼這個帶有哈哈哈單詞的字符串與這種模式相符?

我想返回失敗,如果沒有特定的詞,點,這個字符串上的空白。

回答

0

當使用^時,意味着您只是在字符串的開始處查找它。並且$表示您只在字符串的末尾查找它。

這將工作:

$s = '4crisp4 4crisp4 4crisp4'; 
preg_match('/^[4bored4|4blur4|4blingeye4|4bathing4|4congratz4|4crisp4|4curse4| |\.]+$/',$s,$m); 

這是行不通的:

$s = 'asdf 4crisp4 4crisp4 4crisp4'; 
preg_match('/^[4bored4|4blur4|4blingeye4|4bathing4|4congratz4|4crisp4|4curse4| |\.]+$/',$s,$m); 
0

嘗試這樣

preg_match('/[4bored4|4blur4|4blingeye4|4bathing4|4congratz4|4crisp4|4curse4| |\.]+$/',$s,$m); 

您需要刪除 「^」 它將給你比賽開始