Php 正则表达式-值不等于

Php 正则表达式-值不等于,php,regex,Php,Regex,您能否建议使用正则表达式: 不等于string1、string2、string3,不区分大小写 我有以下几点,但没有给我想要的 /^(?!string1|string2|string3)$/ 谢谢您需要的是正则表达式中的和,而不是或。因为如果字符串是string3,它将不等于string1和string2,因此它将匹配。你不能用正则表达式来解决这个问题(至少我认为不是以可读的方式)。当然,可以通过反转匹配的输出来实现 您还可以使用非正则表达式方法(可能更易于维护): 在正则表达式中需要和,而不

您能否建议使用正则表达式:

不等于string1、string2、string3,不区分大小写

我有以下几点,但没有给我想要的

/^(?!string1|string2|string3)$/

谢谢

您需要的是正则表达式中的
,而不是
。因为如果字符串是
string3
,它将不等于
string1
string2
,因此它将匹配。你不能用正则表达式来解决这个问题(至少我认为不是以可读的方式)。当然,可以通过反转匹配的输出来实现

您还可以使用非正则表达式方法(可能更易于维护):


在正则表达式中需要
,而不是
。因为如果字符串是
string3
,它将不等于
string1
string2
,因此它将匹配。你不能用正则表达式来解决这个问题(至少我认为不是以可读的方式)。当然,可以通过反转匹配的输出来实现

您还可以使用非正则表达式方法(可能更易于维护):


对不起,如果我走错了路,为什么不否定正匹配

if (!preg_match("/^(string1|string2|string3)$/i",$str) {
    // ...
}

对不起,如果我走错了路,为什么不否定正匹配

if (!preg_match("/^(string1|string2|string3)$/i",$str) {
    // ...
}
你能试试这个吗? 如果(!preg_match('/(string1 | string2 | string3)/i',$str))

你能试试这个吗?
如果(!preg_match('/(string1 | string2 | string3)/i',$str))

我在需要查找“不包含…”的文件时使用此选项:

(?s)\A(?版权所有)。*\Z


这是字符串“版权”。。。根据需要更换管柱;以及\A(文件的开头)和\Z(文件的结尾)。

我在需要查找“不包含…”的文件时使用此选项:

(?s)\A(?版权所有)。*\Z


这是字符串“版权”。。。根据需要更换管柱;以及\A(文件的开头)和\Z(文件的结尾)。

有时这太明显了:)谢谢-从您提供的内容中找到了答案。需要纯正则表达式“/^(?!string1 | string2 | string3)。*$/i“/^(?!string1 | string2 | string3$)/如果您想匹配完整字符串:例如“string1”匹配,但“string12”不匹配。@BasTaller实际上它不必匹配“string12”,它们只是实际字符串的占位符,但以你的方式,这是正确的表达:)有时这太明显了:)谢谢-从你提供的信息中找到答案。需要纯正则表达式“/^(?!string1 | string2 | string3)。*$/i“/^(?!string1 | string2 | string3$)/如果您想匹配完整字符串:例如“string1”匹配,但“string12”不匹配。@BasTaller实际上它不必匹配“string12”,它们只是实际字符串的占位符,但以你的方式,这是正确的表达:)