PHP Velho Oeste 2024

mb_ereg_match

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

mb_ereg_matchÇok baytlı dizge için düzenli ifadeyi eşleştirir

Açıklama

mb_ereg_match(string $kalıp, string $dizge, ?string $seçenekler = null): bool

Bir düzenli ifadeyi çok baytlı bir dizge ile eşleştirir.

Bilginize: kalıp sadece dizge başlangıcında eşleşir.

Bağımsız Değişkenler

kalıp

Düzenli ifade kalıbı.

dizge

Kalıbın aranacağı dizge.

seçenekler

Arama seçenekleri. Ayrıntılar mb_regex_set_options() işlevinde bulunabilir.

Dönen Değerler

dizge, şablon ile eşleşirse true eşleşmezse false döner.

Sürüm Bilgisi

Sürüm: Açıklama
8.0.0 seçenekler artık null olabiliyor.

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() - Çok baytlı düzenli ifade işlevleri için geçerli kodlamayı dizge olarak atar/döndürür
  • mb_ereg() - Düzenli ifadeyi çok baytlı karakter desteğiyle eşleştirir

add a note add a note

User Contributed Notes 3 notes

up
9
Anonymous
8 years ago
The behaviour of mb_ereg_match to imply a ^ at the beginning of the pattern stands in stark contrast to the behaviour of mb_ereg where ^ is NOT implied.

Switching between those two routines (because the need to extract a subpattern changes) requires careful consideration when to compensate for this surprising inconsistence.
up
8
Anonymous
15 years ago
Note that this function matches a string from the beginning only (though not necessarily till the end):

<?php

$test
= mb_ereg_match("a", "some apples"); // returns false
$test = mb_ereg_match("a", "a kiwi");      // returns true

?>

If you want to check for a match anywhere in the string, use the wild-card & repeat operators .*

<?php

$test
= mb_ereg_match(".*a", "some apples"); // returns true

?>
up
-1
webdesign at innato dot nl
5 years ago
It took me a while to discover that you must escape characters like parentheses (), square brackets [] and ^ (and maybe more) if you want to match these as a literal. Otherwise you may get some erratic outcome.

In summary, using a match anywhere in the string as an example:

<?php
$needle
= "[";
$haystack = "some_array[]";
$test= mb_ereg_match(".*".$needle, $haystack);   // returns false and a php warning

$test= mb_ereg_match('.*'.preg_quote($needle), $haystack);   // returns true
?>
To Top