2011-02-21 17 views
0

、私は正規表現を記述する必要があるが、私は\ sの空白を見つけるために得ることができない何らかの理由で、しようとして イムのために....するpreg_match空白問題

$name = "a "; 

if(preg_match('^[a-z]+\s$', $name)){ 
    echo "match"; 
} else { 
    echo "no match"; 
} 

IVEはまた

preg_match('^[a-z\s]+$'); 

を試してみましたそして

preg_match('^[a-z]/\s/$'); 

私はちょうどマッチを得ていません。 完全な正規表現は、私が行くのにそれを期待するとして働い

preg_match('^[a-z]+\s[A-Z][a-z]+$'); 

がイマイチ....その後、スペース、その後1つの以上の小文字を可能にするために、1つの以上の小文字に続いて大文字が必要ですが、 Web上で見られるチュートリアル(サイトポイントなど)。

誰でも光を当てることができますか?あなたが式にdelimiters(docs)を追加する必要が

答えて

7

$name = "a "; 

if(preg_match('/^[a-z]+\s$/', $name)){ 
//   ^  ^
//    └----------┴----- here: slash as delimiter 
    echo "match"; 
} else { 
    echo "no match"; 
} 
ここ

ないことくらい、OK(私はスラッシュ/を使用していますが、区切り文字を選択する際にかなりの自由である:任意の英数字以外の、非-backslash、空白以外の文字)。


例えば、あなたはエラーが警告を含むように設定報告があることを確認してくださいerror_reporting(E_ALL)を追加します。そして、あなたは、この警告を見ているだろう:

警告:するpreg_match():いいえ終了区切り文字 '^' で見つかった...ライン上で...
マッチしない

PHPは最初に扱います文字列の区切り文字として、あなたの場合は^です。

+0

素晴らしいですが、私はどこでもそれを見ませんでした。今すぐお試しください! – Mark

関連する問題