mb_ereg

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

mb_eregDüzenli ifadeyi çok baytlı karakter desteğiyle eşleştirir

Açıklama

int mb_ereg ( string $şablon , string $dizge [, array $sonuç ] )

Düzenli ifadeyi çok baytlı karakter desteğiyle eşleştirir.

Değiştirgeler

şablon

Aranacak şablon.

dizge

Şablonun aranacağı dizge.

sonuç

Eşleşen dizgeyi içeren dizge.

Dönen Değerler

Düzenli ifadeyi çok baytlı karakter desteğiyle çalıştırır ve eşleşme sağlanırsa 1 döndürür. İsteğe bağlı olan sonuç değiştirgesi belirtilmişse eşleşen alt dizge sonuç değiştirgesine yerleştirilip uzunluğu dönüş değeri olarak döndürülür. Boş dizgeyle eşleşme halinde işlev 1 değeriyle döner. Eğer bir eşleşme bulunamazsa veya bir hata oluşursa FALSEdöner.

Notlar

Bilginize:

Bu işlev karakter kodlaması olarak dahili kodlamayı veya mb_regex_encoding() işlevi tarafından belirtilen karakter kodlamasını kullanır.

Ayrıca Bakınız

  • mb_regex_encoding() - mbregex işlevleri için geçerli kodlamayı dizge olarak döndürür
  • mb_eregi() - Harf büyüklüğüne duyarsız çok baytlı düzenli ifade eşleştirmesi uygular

add a note add a note

User Contributed Notes 7 notes

up
2
pressler at hotmail dot de
5 years ago
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.";
}

?>
up
2
Anonymous
1 year ago
Old link to Oniguruma regex syntax is not working anymore, there is a working one:
https://github.com/geoffgarside/oniguruma/blob/master/Syntax.txt
up
0
lastuser at example dot com
3 months ago
I hope this information is shown somewhere on php.net.

According to "https://github.com/php/php-src/tree/PHP-5.6/ext/mbstring/oniguruma",
the bundled Oniguruma regex library version seems ...
4.7.1 between PHP 5.3 - 5.4.45,
5.9.2 between PHP 5.5 - 7.1.16,
6.3.0 since PHP 7.2 - .
up
0
Never Do This !
5 months ago
Do Not Identically compare (===/!==) "TRUE" with return value of mb_ereg().
eg
<?php
// This doesn't work.
if (mb_ereg('bad', 'bad_input') === true) {
// (or) if (mb_ereg('good', 'good_input') !== true) {
   
die('Get out of here !');
}else{
    echo
'safe';   // continue processing...
}
?>

// These work. (not using TRUE)
if (mb_ereg('bad', 'bad_input')) {.....
if (!mb_ereg('good', 'good_input')) {.....

mb_ereg() never returns TRUE, but False (in unmatch case) or Integer (in match case, >=1, which equals TRUE).
up
0
mb_ereg() seems unable to Use &#34;named sub
3 years ago
mb_ereg() seems unable to Use "named subpattern".
preg_match() seems a substitute only in UTF-8 encoding.

<?php

$text
= 'multi_byte_string';
$pattern = '.*(?<name>string).*';        // "?P" causes "mbregex compile err" in PHP 5.3.5

if(mb_ereg($pattern, $text, $matches)){
    echo
'<pre>'.print_r($matches, true).'</pre>';
}else{
    echo
'no match';
}

?>

This code ignores "?<name>" in $pattern and displays below.

Array
(
    [0] => multi_byte_string
    [1] => string
)

$pattern = '/.*(?<name>string).*/u';
if(preg_match($pattern, $text, $matches)){

instead of lines 2 & 3
displays below (in UTF-8 encoding).

Array
(
    [0] => multi_byte_string
    [name] => string
    [1] => string
)
up
0
Riikka K
3 years ago
While hardly mentioned anywhere, it may be useful to note that mb_ereg uses Oniguruma library internally. The syntax for the default mode (ruby) is described here:

http://www.geocities.jp/kosako3/oniguruma/doc/RE.txt
up
-1
Jon
9 years ago
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");
?>
To Top