Regexp: Başka regexp dışındaki her şeyi kaldırmak için nasıl?

3 Cevap php

i [az] {2,3} $,) doğru e-postaları eşleşecek. bazı regexpi (gibi ^ \ w + [\ w-.] \@\w+((-\w+)|(\w)) var, ama her şeyi kaldırmak için nasıl çözemiyorum benim dizesinde regexpi eşleşmiyor.

E-posta örnek tutarak, ben, böyle bir acı verilen bir yol gerekir

$myString = "This is some text, the email is here example@example.com, and other things over here";

dizeleri hiçbir e-posta varsa ben, sadece 'example@example.com', ya da false boolean dönmek gerekiyor.

Tabii ki, e-posta sadece bir örnektir, ben tamsayı / kayan sayılar, vb dışında her şeyi kaldırmak gerekir bazı diğerleri kez ..

Etrafta o kadar çok google'dan ama bir şey bulamadık.

3 Cevap

preg_match_all fonksiyonunu bir hata oluştu eğer kendisi maçların sayısını veya false döndürür to match all occurrences. The preg_match_all işlevini kullanın.

Yani:

$myString = "This is some text, the email is here example@example.com, and other things over here";
if (($num = preg_match_all('/\w+[\w-.]\@\w+((-\w+)|(\w)).[a-z]{2,3}/', $myString, $matches)) !== false) {
    echo $num.' matches have been found.';
    var_dump($matches);
} else {
    // error
}

Sizin regex çalışması için kaldırıldı $ ve ^ olması gerekir, bu semboller dize ortasında bulunamaz. Lütfen regex eşleşirse muhtemelen ama başka e-posta şey içeremez.