2016-03-22 20 views
2

Ich verwende den folgenden Code, um etwas wie dieses zu haben: "محمد 125 hasan". mit einer Grenze zwischen 3 und 25 Zeichen. aber es funktioniert nicht.Wie arabische Buchstaben mit englischen Buchstaben und Zahlen im regulären Ausdruck verwenden

(^[ \d\p{Arabic}a-zA-Z0-9 ]{3,25}$) 
+1

Ist der vorangehende und nachfolgende Leerzeichen Teil der Übereinstimmung? –

+0

@noob: Raten Sie so, zumindest ist es Teil des ersten Versuchs (siehe in eckigen Klammern). – Jan

Antwort

2

Schlicht und einfach:

^[\d\p{L}\h]{3,25}$ 
# match the start (^), digits or any letter 
# and horizontal space three to 25 times 
# end of the string/line ($) 

In PHP dies wäre:

$string = 'محمد125 hasan '; 
$regex = '~^[\d\p{L}\h]{3,25}$~'; 
if (preg_match($regex, $string, $match) { 
    // do sth. useful here 
} 

Siehe a demo on regex101.com.

0

Verwenden Sie einfach \ w mit u Modifikator was bedeutet Unicode

/^[ \d\p\wa-zA-Z0-9 ]{3,25}$/u 

https://regex101.com/r/mC5uT3/1

+0

Darf ich Sie Skype-Konto haben? – Shafizadeh

+0

@Shafizadeh wie Sie;) Täbris –