2009-09-06 2 views
25

PHP関数preg_match()を使用して文字列をテストし、空白があるかどうかを確認するにはどうすればよいですか?preg_matchを使ってスペースをテストするには?

"この文は、スペースのために真のテストされるだろう" "thisOneWouldTestFalse" あなたは空白に興味があるなら(タブなどを含む)

答えて

43

は、使用\s

if (preg_match("/\\s/", $myString)) { 
    // there are spaces 
} 

スペースに興味がある場合は、正規表現は必要ありません。

if (strpos($myString, " ") !== false) 
+0

あなたは間違った方法のまわりstrposパラメータを持っています。必要があります: if(strpos($ myString、 "")!== false) – ncatnow

+0

@ncatnow、ヘッドアップのおかげで。それはそこに座っていた、間違って、ほぼ1年間。 :p – nickf

+0

\ s \ b \\ Sなどを説明する文書へのリンクはどこにありますか? – Pacerier

3

また、これに対処するthis StackOverflow questionを参照してください。

そして、あなたはタブと空白の他のタイプを検出したい場合に応じて、あなたは、このような\ B \ワットとして、物事のためのPerlの正規表現構文を見てみたいことがあり[:SPACE:]

+0

'\ b'のような一重引用符で囲んでいれば、'/\ s/'を使用することができます。 'preg_match("/\\ b/"、" abc ")' == true – nickf

+0

良い点、私はちょうど "単語の境界線"を考えていて、それを覚えていないと、文字列の始まりと終わりが一致します。終了する。 – JYelton

0

あなたは使用することができます。

preg_match('/[\s]+/',.....) 
0
[\\S] 

上位大文字 'S' を確実に動作します。

0

この目的のためにctype_graphを使用することはどうですか?これは、スペースの範囲を拡大して、\ t、\ nのように画面上に何も表示されない「空白文字」を意味します。 しかし、これはネイティブであり、preg_matchよりも速くなければなりません。使用する

$x = "string\twith\tspaces" ; 
if(ctype_graph($x)) 
    echo "\n string has no white spaces" ; 
else 
    echo "\n string has spaces" ; 
関連する問題