Ben iki karakter, @ ve nokta arasındaki dize dönmek istiyorum (.).
Ben regex kullanmaya çalıştı ama o çalışma bulamıyorum.
(@(.*?).)
Kimse yok mu?
Düzenli ifade neredeyse sadece dönem kaçmak unuttum çalışır. Ayrıca, PHP size sınırlayıcı gerekir:
'/@(.*?)\./s'
S DOTALL modifier olduğunu.
Burada PHP nasıl kullanılacağını tam bir örnek:
$s = 'foo@bar.baz';
$matches = array();
$t = preg_match('/@(.*?)\./s', $s, $matches);
print_r($matches[1]);
Çıktı:
bar
Eğer regex öğrenme ediyorsanız, siz de bu analiz etmek isteyebilirsiniz:
@\K[^.]++(?=\.)
(?<=@)[^.]++(?=\.)
Her ikisi de bu düzenli ifadeler iyelik nicelik kullanabilirsiniz (++
). Zaman yapabilirsiniz gereksiz geriye gidilmiştir önlemek için, bunları kullanın. Ayrıca, etrafa yapılar ile (ya da \K
), biz @
ve .
$matches[0]
in arasındaki kısmını eşleşebilir.