2011-12-18 8 views

risposta

7

Se la stringa di origine è codificata in UTF-8, l'approccio più semplice sarebbe utilizzare \p{Hebrew} nell'espressione regolare.

La chiamata deve anche avere il modificatore /u.

= preg_match("/\p{Hebrew}/u", $string) 
+0

Questo non manca un '\' in '\\ p'? – fge

+0

@fge: se vuoi essere super-corretto :) Ma "" \ p "' non è una escape C-string, quindi raggiungerai correttamente la libreria PCRE come '\ p' – mario

+0

Hmm, quindi non devi scappare backslash in string letterali di PHP? Non lo sapevo. – fge

1

L'approccio più semplice sarebbe:

preg_match('/[א-ת]/',$string) 

Per esempio,

$strings = array("abbb","1234","aabbאאבב","אבבבב"); 

foreach($strings as $string) 
{ 
    echo "'$string' "; 

    echo (preg_match('/[א-ת]/',$string))? "has Hebrew characters in it." : "is not Hebrew"; 

    echo "<br />"; 
} 
Problemi correlati