preg_match değil php, RegexBuddy çalışır

5 Cevap php

Tamam ben oluşturduğum bu regex var ve ben php içine yüklerken değil RegexBuddy çalışıyor ama. Aşağıda bunun bir örneğidir.

Ben bu konuda çalışmalara alabilirsiniz RegexBuddy kullanma:

\[code\](.*)\[/code\]

Ve nokta kontrol ben harf büyüklüğüne duyarsız eklendi satırsonunu maçlar, ama aynı zamanda bu şekilde çalışır.

İşte php:

$q = "[code]<div>html code to display on screen</div>[/code]";

$pattern = '/\[code\](.*)\[/code\]/si';

$m = preg_match($pattern, $q, $code);

Yani ben [/ code] [kod] kullanıyorum görebilir ve ben bu ayıklamak sonra bir kez ben html kodunu görüntülemek yerine, işlemek için üzerinde () htmlentitiesi çalışacaktır.

5 Cevap

Sen desen (/ kodu) ortasına eğik çizgi dahil ediyoruz. Bu kaçış ya da başka bir şey (tercihim!) Ile desen sınırlandırmak ya.

Kullanım sekmesinde bir kaynak kod parçacığını oluşturmak, ya da üstündeki araç çubuğunda Kopyala düğmesini tıklatın ve bir PHP gebelik dize olarak kopyalamak için birini seçin, PHP RegexBuddy sizin düzenli ifadeyi aktarırken. Sonra RegexBuddy otomatik çıkmamış bir şey bırakmadan, PHP ihtiyacı sınırlayıcı ve bayrakları katacak.

Eğer kapanış işaretleyici kaçmamış çünkü bu /

Tersbölüleri kaçan zarar da olmaz:

$pattern = "/\\[code\\](.*)\\[\\/code\\]/si";

PHP RegEx sınırlayıcı olarak herhangi bir karakter seçmenize olanak verir, bu yüzden sık sık @ gibi, aynı zamanda regex kullanılan olmayan bir karakteri kullanacağız.

$pattern = "@\\[code\\](.*)\\[/code\\]@si";

Bu çalıştı:

$pattern = '/\[code\](.*)\[\/code\]/si';

Siz / kod eğik kaçmak gerekir

$pattern = '/\[code\](.*)\[\/code\]/si';

Ayrıca, maçlar $ kodunda saklanır değil $ m fark

Düzenleme: Dövüldü: p