OR PHP regex operatör (unicode doğrulama dahil)

1 Cevap php

S. Gehrig'in cevap sayesinde initial question Ben iyi çalışıyor ve Çince dışında (Letter özelliğine dayalı bir değişken doğrular, ama bu :) başka bir konu, bir düzenli ifade var:

if (preg_match('/^\p{L}+$/u', $input)) {
    // OK
}

Ne yazık ki sayılar ilgili soru / ünlem desteklemek için destek uzatabilirsiniz & edemez co. Benim deneyler dahil:

'/^[\p{L}]|[0-9]|[\n]|[']|[\?]|[\!]|[\.]|[\,]+$/u'
'/^[\p{L}+]|[0-9]|[\n]|[']|[\?]|[\!]|[\.]|[\,]$/u'
'/^[\p{L}+]|[0-9]|[\n]|[']|[\?]|[\!]|[\.]|[\,]$/u'

Doğru regex nedir? Doğru yönde bana gelin lütfen.

Çok, çok teşekkürler!

1 Cevap

\p{L}+ "\p{L} 's boş olmayan bir dize" zaten. [], diğer yandan böylece gerçek ihtiyaçlarına bağlı olarak, bu iki çalışması gerekir, "birini" işaret eder:

Dizisindeki belirtilen karakterlerden herhangi (pozitif, sıfır olmayan) sayısı:

/^[\p{L}0-9\n'?!.,]+$/u

\p{L} sn 'lik bir dizi ya da bir dizi iki karma [0-9\n'?!.,],

/^(\p{L}+|[0-9\n'?!.,]+)$/u

A \p{L} s dizisi ya da tam olarak bir ya [0-9\n'?!.,],

/^(\p{L}+|[0-9\n'?!.,])$/u