Соответствие только числам / персидским символам и латыни

Мне нужен код регулярного выражения, который соответствует номерам / персидским символам и латинским (AZ)

я написал следующий код

preg_match("/[A-Za-z\s\x{0600}-\x{06FF}0-9_\.\- ]/u",$_POST['input'] )

и отлично работает.

но есть проблема, я не хочу вводить какие-либо символы (@, #,!,%, $, &, *).

есть идеи?

Просто используйте negative lookahead выражение в вашем регулярном выражении, чтобы проверить, что такого символа нет. Поместите это в начало своего регулярного выражения. Я имею в виду сразу после / .

 (?!.*[(@#!%$&*)]) 

Например:

 preg_match("/^(?!.*[(@#!%$&*)])[A-Za-z\s\x{0600}-\x{06FF}0-9_\.\- ]+$/u",$_POST['input'] )