düzenli ifade ile yardımcı

2 Cevap php

Bunu yapmak normal bir ifade almak mümkündür:

  1. bir dize some word ilk olayini bulabilirsiniz
  2. oluşumu önce ve sonra harflerin bir nr bir alt dize döndürür
  3. ama bir karşılaşırsa. (Nokta) görülmesi önce ve sonra harflerin nr önce, sadece virgülden sonra / önce alt dize döndürür.
  4. tüm kelimeleri dönmek

Örnek:

"Bu nasıl bilir herkes. Düzenli bir ifade girer ve düzenli ifade. Ve bla bla tatmin dizeleri çıktılar bir program oluşturun"

Anahtar kelime 'programının' ve biz 20 harften nr koyarsanız 'programı' öncesi ve sonrası 20 harf dönecektir. O olur önce 20 harf bir nokta karşılaştığında beri Ama orada duracak.

"Düzenli giren bir program oluşturun ..."

Bu regexp ile mümkün mü? i kullanmak için ne php fonksiyonu var? Bunun için herhangi bir finnished komut var mı? Arama sonuçlarını gösteren zaman ben onun oldukça temel bir ihtiyaç sanırım. Birisi zaten işlevini paylaşmak için var?

2 Cevap

İşte php Dav düzenli ifade var:

<?php
  $str = "Anyone who knows how to do this. Create a program that inputs a regular expression and outputs strings that satisfy that regular expression. And bla bla";
  $key = "program";
  $lim = 20;
  $reg = "/([^.]{0,{$lim}})({$key})([^.]{0,{$lim}})/"; // /[^.]{0,20}program[^.]{0,20}/

  $res = preg_match($reg, $str, $matches);
  echo $matches[0];

  print_r($matches); // $matches[1] is the pre-text, and $matches[3] is the post-text

"Bütün sözcükleri dönüş": trickiest gereksinimi # 4'tür. Yine yukarıdaki düzenli ifade yararlanarak bu süre ele verebilecek bir şekilde daha önce ve gerçekten istediğiniz daha sonra (40 karakter diyelim) daha fazla metin çekmek. Sonra siz, preg_split Sana iki kelime dizileri verecek boşluklarla önce ve sonra metin. Size tüm kelimelerin toplam uzunluğu sizin 20 sınırından daha az dizinin bir alt kümesini geri veren bir fonksiyonu sayesinde dizilerini ...

[^.]{0,MAXCHARS}wordtofind[^.]{0,MAXCHARS}

Sayısı, her tarafta istediğiniz maksimum karakter sayısına karşılık gelen maxChars değiştirin.

[^.] model bir dönem değil herhangi bir karakterle eşleşir ve {0,MAXCHARS} eleme yerde 0'dan bu karakterlerin maxChars maçları.