2011-01-18 36 views
21

Normal ifadeler konusunda oldukça yeniyim. Belirli bir parçayı içeren bütün kelimelere uyan bir desen oluşturmama yardımcı olabilir misiniz? Örneğin ben bir metin dizesi varsa, "Bir düzenli ifadeyi eşleştirmeye çalışır" ve ben ifade için arama yaparsanız, ben formu için arama yaparsanız, benim gerçekleştirin vermelidir, bana ifadesini vermek shuld ve böylece üzerinde. Fikri aldın mı?PHP preg_match Tüm kelimeleri bulmak için

cevap

38
preg_match('/\b(express\w+)\b/', $string, $matches); // matches expression 
preg_match('/\b(\w*form\w*)\b/', $string, $matches); // matches perform, 
                // formation, unformatted 

:

  • \b bir kelime sınır
  • \w+ olan bir veya daha fazla "kelimesi" *
  • \w* sıfır veya daha fazla olan karakterdir "kelimesi" karakterler

El kitabına bakın 0 PCRE için.


* Not: gerçekten "kelimesi karakteri", alt çizgi _ da karakter sınıfını \w int dahildir olmasa da.

+0

Teşekkür goreSplatter! İşe yarıyor! – tintix

+0

Bu harika. Sadece aradığım şey ... +1 – OrPaz

+0

\ b Kelime sınırı, güzel ... Neden şimdiye kadar bunu görmedim? İşe yarar. – Andrew

4

Bu 'gerçekleştir' maçlarının:

\b(\w*form\w*)\b 

Bu eşleşirken 'ifadesi':

\b(\w*express\w*)\b