仅匹配数字/波斯字符和拉丁语


Matching ONLY Numbers / Persian Characters And Latin

>我需要匹配数字/波斯字符和拉丁语 (A-Z) 的正则表达式代码

我写了以下代码

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'] )