Php 只需删除正则表达式中的a-zA-z节

Php 只需删除正则表达式中的a-zA-z节,php,regex,Php,Regex,这是我的正则表达式字符串: '(?!('.$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-سلام' ;

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

'(?!('.$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与regex规则字符串进行比较,它将不匹配,因为
它不在a-zA-z范围内,我只是想从我的理解中去掉这个限制(a-zA-z)

,我想你在寻找这个:

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

尝试添加与其他内容匹配的内容,而不是a-zA-Z规则

'(?!('.$exceptions.')(.*))'
编辑:

在阅读了下面的评论之后。也许更好的解决方案是使用针对该问题提出的解决方案:

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

$url = $_SERVER["REQUEST_URI"];

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

if ($isException !== false)
{
    //url contains word in exceptions!
}

我不明白你想达到什么目的。尝试提供一些输入和输出示例。$string='kjhkjdgdfل1740;لل1740;ل%%^&*('我希望如果$string不等于$expetion单词中的一个,那么打印您的问题。我只是不想检查a-zA-z,因为unicode字符,我不知道正则表达式规则。当删除[a-zA-z]时,会得到错误'(?!('.$exceptions')(\W+)。$))“+/?$”?只想使用正则表达式,只想删除a-zA-z规则,只想不检查字符是否在a-z或a-z范围内,因为是unicode字符。包括一个带有“-”或“u”字符的单词。问题是我不知道正则表达式我需要它来检查cakephp RouterHanks Jonas中URL中的slug,请注意,我是chan在正则表达式中加上作为注释发送的标记,它工作得很好:connect('/:language/:typeslug',array('controller'=>'nodetypes','action'=>'view'),array('language'=>'[a-z]{3}','typeslug'=>'(?!('.$exceptions')((\W+)+/?$),'pass=>array('typeslug'));