只需删除正则表达式中的a-zA-z部分


Just remove a a-zA-z section in regular expression

这是我的正则表达式字符串:

'(?!('.$exceptions.')(('W+)|$))[a-zA-Z'-_]+/?$'

$exceptions是一个包含如下字符串的变量:

word1|word2|word3|word4|wordN

我只是想删除a-zA-Z部分,这意味着我只想删除检查英文字符的规则,因为unicode。

示例:

$exception ='word1|word3|word3|word4' ;
$myword = 'a-unicode-statement-like-سلام' ;

如果$myword与正则表达式规则字符串相比较,它将不匹配,因为"الام"它不在a-zA-z范围内,我只想取消这个限制(a-zA-z)

尝试添加一些内容来匹配其他内容,而不是a-zA-Z规则。

'(?!('.$exceptions.')(.*))'

编辑:

看完你下面的评论。也许更好的解决方案是使用针对这个问题提出的解决方案:wordpress:如何检查slug是否包含特定的单词?

然后你可以使用这样的东西进行检查:

$url = $_SERVER["REQUEST_URI"];
$isException = strpos($url, 'word1');
if ($isException !== false)
{
    //url contains word in exceptions!
}

据我所知,我认为你正在寻找这个:

$exceptions = ["word1","word2","word3"];
       // or $exceptions = explode("|",$exceptions) to work with what you have already
if( in_array($string,$exceptions)) {
   // word is in exceptions
}