(PHP 4 >= 4.2.0, PHP 5)
mb_ereg — Regular expression match with multibyte support
$pattern
, string $string
[, array $regs
] )Executes the regular expression match with multibyte support.
Executes the regular expression
match with multibyte support, and returns 1 if matches are found.
If the optional regs
parameter was specified, the function
returns the byte length of matched part, and the array
regs
will contain the substring of matched
string. The function returns 1 if it matches with the empty
string. If no matches are found or an error happens, FALSE
will be
returned.
Note:
mb_regex_encoding() 指定的内部编码或字符编码将会当作此函数用的字符编码。
pressler at hotmail dot de (2012-11-19 22:50:53)
Note that mb_ereg() does not support the \uFFFF unicode syntax but uses \x{FFFF} instead:
<?PHP
$text = 'Peter is a boy.'; // english
$text = '???? ?? ???.'; // arabic
//$text = '???? ??? ???.'; // hebrew
mb_regex_encoding('UTF-8');
if(mb_ereg('[\x{0600}-\x{06FF}]', $text)) // arabic range
//if(mb_ereg('[\x{0590}-\x{05FF}]', $text)) // hebrew range
{
echo "Text has some arabic/hebrew characters.";
}
else
{
echo "Text doesnt have arabic/hebrew characters.";
}
?>
arash at hemmat dot biz (2010-05-18 02:32:54)
I could easily remove any non Persian (Farsi) characters using this function, the range for Arabic and Persian are shared so this code could be used for Arabic too.
<?php mb_ereg_replace("[^?-?]","-",$string); ?>
This is the reference for finding the character range of Unicode languages:
http://unicode.org/charts/
Jon (2009-04-11 04:22:19)
Hebrew regex tested on PHP 5, Ubuntu 8.04.
Seems to work fine without the mb_regex_encoding lines (commented out).
Didn't seem to work with \uxxxx (also commented out).
<?php
echo "Line ";
//mb_regex_encoding("ISO-8859-8");
//if(mb_ereg(".*([\u05d0-\u05ea]).*", $this->current_line))
if(mb_ereg(".*([?-?]).*", $this->current_line))
{
echo "has";
}
else
{
echo "doesn't have";
}
echo " Hebrew characters.<br>";
//mb_regex_encoding("UTF-8");
?>