0

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

'(?!('.$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)

4

2 回答 2

1

尝试添加一些东西来匹配其他所有东西,而不是你的 a-zA-Z 规则。

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

编辑:

阅读下面的评论后。也许更好的解决方案是使用针对这个问题提出的解决方案:wordpress: how to check if the slug contains a specific word?

然后,您可以使用以下内容进行检查:

$url = $_SERVER["REQUEST_URI"];

$isException = strpos($url, 'word1');

if ($isException !== false)
{
    //url contains word in exceptions!
}
于 2013-08-17T13:43:52.427 回答
0

据我了解,我认为您正在寻找这个:

$exceptions = ["word1","word2","word3"];
       // or $exceptions = explode("|",$exceptions) to work with what you have already
if( in_array($string,$exceptions)) {
   // word is in exceptions
}
于 2013-08-17T13:28:40.940 回答