PHP Wildcard Maçları dize alın

2 Cevap php

PHP bir çok özel işlev gerekir. Temelde, değişken uzunluğu (*) joker karakterleri içeren bir model olan biri argümanlar, iki dizeleri var ve bu desen eşleşen bir dize olan biri. Ben desen joker doldurmak ikinci dize dizelerden oluşan bir dizi almak gerekiyor.

Örneğin:

  • Argüman 1: "Bu benim * ki * dizedir"
  • Argüman 2: "Bu kendimi yarattığını benim müthiş dize"
  • ("Benim harika", "kendimi oluşturuldu") dizi: Return

Bunu yapmak için en temiz yolu nedir? Örnekte, onlar herhangi bir rasgele karakterler olabilir gibi bu her zaman ingilizce kelimelerin dizeleri olmadığını unutmayın.

2 Cevap

Sen sadece bir regex eşdeğeri ile joker değiştirin ve preg_match'in aracılığıyla çalıştırabilir.

Gerçekten ev ödevi gibi ses yok çünkü, ben ya da herhangi özel bir kod vermek istemiyorum, ama ben preg_replace (regex eşdeğerleri ile joker yerine) ve preg_match iyi faydalanmak istiyorum (eşleşen alt dizelerin dizi oluşturmak için).

Ödev gibi geliyor. Burada bir yürüyüş yoluyla herhangi bir fiili kodu olmadan:

Dizeleri ve joker içine desen tokenize. Belirteçleri üzerinde yineleme; Hedef dize düzenli (dize, non-joker) belirteci ile başlar her zaman, bu dize keserek. Bir vahşi kart belirteci karşılaşabilirsiniz her zaman, dize sonraki belirteci indeksini bulmak ve bu indekse kadar keserek. Bu saklayın. Herhangi bir zamanda herhangi bir maç varsa, return false. Desen tamamlanmadan önce dizenin sonuna karşılaşırsanız, return false. Son belirteç bir joker ise, dize kalan kaydedin.