boş (veya beyaz boşluk) dize eşleştirmek için düzenli ifade

6 Cevap php

i (özellikle ben PHP kullanıyorum) boşluk karakter herhangi bir tür olabilir bir dize maç istiyorum. veya bir dize boş veya sadece boşluk olup olmadığını söylemek için herhangi bir yolu da yardımcı olacaktır!

6 Cevap

Bunun için düzenli ifadeler gerekmez, sadece kullanmak:

if ( Trim ( $str ) === '' ) echo 'empty string';

Kesilmiş dize uzunluğunu kontrol etme, ya da boş bir dizeye kesilmiş dize karşılaştırarak muhtemelen okumak için en hızlı ve en kolay, ama sen bunu kullanamazsın bazı durumlar da vardır (örneğin, doğrulama için bir çerçeve kullanırken hangi sadece ) düzenli ifade alır.

Başka hiç kimse aslında henüz bir çalışma regex gönderdi yana ...

if (preg_match('/\S/', $text)) {
    // string has non-whitespace
}

veya

if (preg_match('/^\s*$/', $text)) {
    // string is empty veya has only whitespace
}
if (preg_match('^[\s]*$', $text)) {
    //empty
} 
else {
    //has stuff
}

ama sen de yapabilirsin

if ( trim($text) === '' ) {
    //empty
}

Edit: gerçekten boş bir dize eşleştirmek için güncellenmiş regex - nickf başına (teşekkürler!)

if(preg_match('^[\s]*[\s]*$', $text)) {
    echo 'Empty or full of whitespaces';
}

^ [\ S] * metin sıfır veya daha fazla boşluk ile başlamalı ve ifadeler "sıfır veya daha fazla" olduğu [\ s] * $ araçlar, sıfır veya daha fazla boşluk ile bitmelidir anlamına gelir, o da boş dizeleri eşleşir.

Eğer gerçekten bir regex gerekmez

if($str == '') { /* empty string */ }
elseif(trim($str) == '') { /* string of whitespace */ }
else { /* string of non-whitespace */ }

Ifadesi \A\s*+\Z