SORU
18 ŞUBAT 2009, ÇARŞAMBA


Eşleşen bir düzenli ifade alanı içinde

PHP düzenli ifade içinde bir boşluk karakteri eşleştirmek istiyorum. Herkes herhangi bir fikir var mı?

"Gavin schulz", alanı arasında iki kelime. gibi yani Düzenli ifade sadece harf, sayı ve boşluk bırakın emin olmak için kullanıyorum. Ama yer bulmak için nasıl emin değilim. Bu benim şu anda ne var:

$newtag = preg_replace("/[^a-zA-Z0-9s|]/", "", $tag);

CEVAP
18 ŞUBAT 2009, ÇARŞAMBA


Eğer bir boşluk arıyorsan, O " " (bir boşluk) olacaktır.

Eğer bir veya daha fazla arıyorsanız, " *" (ikiboşluk ve yıldız işareti) veya " " (bir boşluk ve bir artı).

Arıyorsan ortak aralığını kullanın. "[ X]" "[ X][ X]*" "[ X] " X fiziksel sekme karakteri (ve her önce bir tek alanda tüm bu örnekler).

Bu çalışacakhergördüğüm düzenli * hatta bir ya da daha fazla " " karakteri, ugh yok ().

Eğer daha modern bir düzenli ifade kullanarak olacak biliyorsanız motorları, "\s" ve türevlerini gitmek için bir yoldur. Buna ek olarak, sözcük sınırları çizgileri veya boşluklar olmadan önceki sonraki görünebilir kelimeleri ararken de, önemli bir başlangıç ve bitiş maçı inanıyorum.

PHP için, özellikle this page yardımcı olabilir.

Sizin karşınıza gelen tüm geçerli olmayan karakterler bu başlangıç (normal ifade içindeki boşluğa dikkat edin) kaldırmak istediğiniz gibi görünüyor:

$newtag = preg_replace ("/[^a-zA-Z0-9 ]/", "", $tag);
#                                    ^ space here

Eğer sen de istiyorsan hileye olun sadece bir boşluk arasında her sözcük ve hiçbir başlangıç veya bitiş, bu biraz daha karmaşık (ve muhtemelen başka bir soru) ama temel fikir olurdu:

$newtag = preg_replace ("/  /", " ", $tag); # convert all multispaces to space
$newtag = preg_replace ("/^ /", "", $tag);  # remove space from start
$newtag = preg_replace ("/ $/", "", $tag);  # and end

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • BigDawsVlogs

    BigDawsVlogs

    17 HAZİRAN 2013
  • SuppressedStorm

    SuppressedSt

    11 AĞUSTOS 2013