Uygulanmadan önce normal ifade desenleri kaçabilir bir PHP işlevi var mı?
Uygulanmadan önce normal ifade desenleri kaçabilir bir PHP işlevi var mı?
C# Regex.Escape()
işlevi çizgisinde bir şey arıyorum.
CEVAP
preg_quote()
aradığınız nedir:
Açıklama
string preg_quote ( string $str [, string $delimiter = NULL ] )
() preg_quotealır
str
ve koyar bir her ters eğik çizgi karakteri önünde bu düzenli ifadenin bir parçasıdır sözdizimi. Eğer varsa yararlıdır çalışma zamanı karşılamak için gerekli olan dize bazı metin ve dize olabilir düzenli özel karakterler içeriyor.Özel düzenli ifade karakterler:
. \ * ? [ ^ ] $ ( ) { } = ! < > | : -
Parametreleri
str
Giriş dizesi.
sınırlayıcı
İsteğe bağlı sınırlayıcı belirtilmişse de kaçmış olacak. Bu ancak sisteminizde fonksiyonları için gerekli olan sınırlayıcı kaçmak için yararlıdır. / En sık kullanılan değişkendir.
Önemlisi, eğer adını $delimiter
bağımsız değişken belirtilmemişse, delimiter - kullanılan karakter için alın size düzenli, yaygın bir eğik çizgi (/
) - olmayacak kaçtı. Genellikle $delimiter
bağımsız değişken olarak düzenli ifade ile kullandığınız ne olursa olsun geçirmek isteyeceksiniz.
Örnek - preg_match
belirli bir URL boşluk çevrili tekrarlamalarını bulmak için kullanma
$url = 'http://stackoverflow.com/questions?sort=newest';
// preg_quote escapes the dot, question mark and equals sign in the URL (by
// default) as well as all the forward slashes (because we pass '/' as the
// $delimiter argument).
$escapedUrl = preg_quote($url, '/');
// We enclose our regex in '/' characters here - the same delimiter we passed
// to preg_quote
$regex = '/\s' . $escapedUrl . '\s/';
// $regex is now: /\shttp\:\/\/stackoverflow\.com\/questions\?sort\=newest\s/
$haystack = "Bla bla http://stackoverflow.com/questions?sort=newest bla bla";
preg_match($regex, $haystack, $matches);
var_dump($matches);
// array(1) {
// [0]=>
// string(48) " http://stackoverflow.com/questions?sort=newest "
// }
Normal ifade yeni hatlar da dahil olma...
\arasındaki fark w ve \b normal ifade ...
Nasıl maç "normal bir ifade hiçbi...
Bir normal ifade içine kötü niyetli ko...
normal ifade.test V. S. dize.eğer bir ...