2011-12-18 11 views

Respuesta

7

Si la cadena fuente está codificada en UTF-8, entonces el enfoque más simple sería usar \p{Hebrew} en la expresión regular.

La llamada también debe tener el modificador /u.

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

¿No se pierde un '\' en '\\ p'? – fge

+0

@fge: Si quieres ser super correcto :) Pero '" \ p "' no es un escape de C-string, por lo que llegará correctamente a la biblioteca PCRE como '\ p' – mario

+0

Hmm, así que no necesitas escapar barras diagonales inversas en los literales de cadena de PHP? No lo sabía. – fge

1

El enfoque más sencillo sería:

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

Por ejemplo,

$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 />"; 
} 
Cuestiones relacionadas