2009-09-06 29 views
25

Herhangi bir boşluk olup olmadığını görmek için bir dizeyi sınamak için prep_match() php işlevini nasıl kullanırdım?Boşlukları test etmek için preg_match nasıl kullanılır?

örnek

"Bu cümle alanları için geçerlidir test edilir" "thisOneWouldTestFalse" Eğer herhangi bir boşluk ilgileniyorsanız (sekmelerin vb dahil)

cevap

43

, kullanmak \s

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

sen mekanlarda sadece ilgilendiğiniz sonra bile düzenli ifade gerekmez:

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

Yanlış yoldasınız etrafında strpos parametrelerini var. Olması gereken: (strpos ($ myString, "")! == false) – ncatnow

+0

@ncatnow, başlıklar için teşekkürler. Neredeyse bir yıldır orada oturuyormuş. : p – nickf

+0

\ s \ b \\ S vb. açıklayan bir belgenin bağlantısının nerede olduğunu biliyor musunuz? – Pacerier

3

Ayrıca, bu adresleri this StackOverflow question görüyoruz.

Ve, sekme ve boşluk diğer tür algılamasını istiyorsanız bağlı olarak, bu tür \ b \ w gibi şeyler için Perl düzenli ifade sözdizimi bakmak isteyebilirsiniz [MEKÂNIN:]

+0

'\ b' gibi tek tırnaklarda onu kapladığınız sürece kullanabilirsiniz. dizgenin başlangıcı ve bitişi ile eşleşir: örn. preg_match ("/ \\ b /", "abc") '== true – nickf

+0

İyi nokta, sadece" kelime sınırlarını "düşünüyordum ve bunun biter. – JYelton

0

Sen kullanabilirsiniz:

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

üst vaka 'S' mutlaka çalışacaktır.

0

Bu amaçla ctype_graph kullanma hakkında ne düşünüyorsunuz? Bu, alanın kapsamını, ekranda görünen hiçbir şeyi (\ t, \ n gibi) basmayan herhangi bir "beyaz alan karakterini" ifade edecek şekilde genişletir. Bununla birlikte, bu yerel ve preg_match'den daha hızlı olmalıdır. Daha hızlı

$x = "string\twith\tspaces" ; 
if(ctype_graph($x)) 
    echo "\n string has no white spaces" ; 
else 
    echo "\n string has spaces" ; 
İlgili konular