2009-11-14 22 views
5

Herkesin alfanümeriklere ve -_", "yanı sıra beyaz alanlara izin vermek için bir regex var mı?Preg_match alphanumeric -_ '"ve beyaz alan

+0

Eğer, söylediklerini eşleşen bir ifade ya da söylediklerini dışındaki her şeyi eşleşen bir ifadeyi anlama geliyor? –

+0

Eşleşmeyen bir şey istisnaya neden olur. Temelde ben sadece düz metin ve istediğiniz -_",' baştan sona gitmek için falan –

cevap

3

deneyin bu bir: Ben regex içinde \ s bayrağına epey okudum

/^[A-Za-z0-9-_",'\s]+$/ 
+4

tür Daha iyi – Andomar

+0

Hayır, ben :)' 0-9-'hile açıklamak istiyorum [] etiketleri>

+0

tek ve çift tırnaklardan kaçmayı deneyin * iç * regex: '/^[A-Za- z0-9 -_ \", \ '\ s] + $ /' – pavium

0

, ben ancak \ s bayrağı tüm eşleştiğini görünür tüm stackoverflow üzerinde şeker gibi dağıttığı bakın metacharacters ve ayrıca satır sonlarını atlar.

Bu, filtrenizde, web sitenizde veya veritabanınızda istemediğiniz her türlü karakter için filtrelenmiş kullanıcı girdilerinin göz ardı edilmesine izin verir.

\ s bayrağı da atlar yeni hat sonları

Böyle bir şey

düşünebilir ... yani lol hack kendi riski aksi mutlu bu yöntemi kullanmak dahil savunmasız filtrelenmiş kod bırakarak: /[^\p{Xan}]++$/D

    Bu
    tüm alfabe beyaz boşluk izin vermiyorsa
  • \p{Xan} maçları tüm unicode alfabesi harf ve sayılar, sonra bir filtre için bu maçı Safly nasıl emin değilim.

  • ++ yardımcı olabilir iyelik nicelik kullanımı

  • $/D dizesinin sonunda sona erdirmek regex neden maçı optimize etmek ve bir satır kesmesinden önce herhangi bir karakter üzerine atlamayın yapar

\ s işaretleyin:

Ref: http://php.net/manual/en/reference.pcre.pattern.modifiers.php

s (PCRE_DOTALL) Bu değiştirici ayarlanırsa, desendeki nokta meta karakterleri yeni satırlar dahil olmak üzere tüm karakterlerle eşleşir. Bu olmadan, yeni satırlar hariç tutulur. Bu değiştirici, Perl'in/değiştiricisine eşdeğerdir. [^ A] gibi bir negatif sınıf, bu değiştiricinin ayarından bağımsız olarak her zaman yeni satır karakteri, ile eşleşir.

Metakarakter:

Ref: Bir meta bir kabuk tercüman olarak, bir bilgisayar programı ile (yerine değişmez bir anlamı) özel anlama sahip olan bir karakter http://en.wikipedia.org/wiki/Metacharacter

veya normal bir ifade motoru. Normal ifadelerde

, her zaman bir eğik çizgi gelmelidir 11 meta vardır, \, ifadenin içinde kullanılacak:

açıklık köşeli parantez [Tersbölüleri \, şapka ^, doları $, periyot veya nokta, dikey çubuk veya boru sembolü, soru işareti?, yıldız veya yıldız *, artı işareti +, açılış yuvarlak braket (ve kapanış yuvarlak köşeli ayraç). [1]

Bu karakterlerden herhangi birini bir normal ifade olarak kullanmak istiyorsanız, bir ters eğik çizgi ile bunlardan kurtulmanız gerekir. 1 + 1 = 2, ile eşleştirmek istiyorsanız, doğru ifade 1 + 1 = 2'dir. Aksi halde, artı işaretinin bir özel anlamı olacaktır. "Izin" ile

İlgili konular