Başka bir PHP regex soru

4 Cevap php

Beyler, bu muhtemelen oldukça basit olacak, ama nasıl bir metin yük bu oluşum regex kullanarak tüm eşleşmeleri bulmak mümkün duyuyorum.

[[data in here]]

EG:

Blah blah blah [[find]] and maybe [[this]]

Yani tekrarlamalarını bulmak ve daha sonra adresler olarak onları değiştirmek mümkün duyuyorum.

Bu mantıklı mı?

Ben kullanarak çalıştı

preg_match_all("/[[([^<]*)]]/", $data, $matches, PREG_OFFSET_CAPTURE);

Ama hataları döndürür. Herhangi bir fikir? :)

4 Cevap

Bu deneyin:

preg_match_all("/\[\[(.+?)\]\]/", $data, $matches, PREG_OFFSET_CAPTURE);

Belki ....

"/\[.*\]/"

? Sadece bir tahmin.

Ben temel sorun, onlar özel karakter olduğu gibi, '[]' parantez kaçmak için ihtiyacınız olduğunu düşünüyorum.

[ ve ] düzenli ifade sözdizimi anlamı var. Onları maç için \ karakter kullanarak onları "kaçış" gerekir. Yani düzenli ifade olurdu:

"/\[\[(.+?)\]\]/"

[ kullanımı ve ] karakter ve bunları nasıl kaçmak için oldukça temel düzenli ifade bilgidir. Kaba olacak, ama üretim kodu için herhangi bir yazma önce düzenli ifadeleri öğrenme biraz daha fazla zaman harcama önermek değil.