Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php regExp问题-字符串已匹配,但不应匹配_Php_Regex - Fatal编程技术网

Php regExp问题-字符串已匹配,但不应匹配

Php regExp问题-字符串已匹配,但不应匹配,php,regex,Php,Regex,iam正在尝试检查用户是否具有管理组的权限: 表达式(ou=| |)是我要查找的字符串 /^OU=|||$|,OU=|||$/i 在像“ou=whatever”这样的字符串上,它返回true(-: 我确信这是管道的问题,但我不知道如何解决这个问题 我使用的PHP 5.x带有preg_match为了更好的可读性,需要对管道进行转义并包含一些括号: /(^OU=\|\|\|$)|(,OU=\|\|\|$)/i 为了更好的可读性,您需要对管道进行转义并包含一些括号: /(^OU=\|\|\|$)|

iam正在尝试检查用户是否具有管理组的权限:

表达式(
ou=| |
)是我要查找的字符串

/^OU=|||$|,OU=|||$/i
在像
“ou=whatever”
这样的字符串上,它返回true(-:

我确信这是管道的问题,但我不知道如何解决这个问题


我使用的PHP 5.x带有
preg_match

为了更好的可读性,需要对管道进行转义并包含一些括号:

/(^OU=\|\|\|$)|(,OU=\|\|\|$)/i

为了更好的可读性,您需要对管道进行转义并包含一些括号:

/(^OU=\|\|\|$)|(,OU=\|\|\|$)/i

管道是正则表达式中的元字符(表示“或”)。您需要转义它们:

/^OU=\|{3}$|,OU=\|{3}$/i
您确定正确使用了字符串的开始和结束锚吗?现在,这个正则表达式将只匹配字符串

OU=|||

,OU=|||

管道是正则表达式中的元字符(表示“或”)。您需要对其进行转义:

/^OU=\|{3}$|,OU=\|{3}$/i
您确定正确使用了字符串的开始和结束锚吗?现在,这个正则表达式将只匹配字符串

OU=|||

,OU=|||

谢谢!str\u replace是解决方案。.有些你在monring中碰到墙了!谢谢!str\u replace是解决方案。.有些你在monring中碰到墙了!请看。为了澄清,你原来的正则表达式的意思是,
OU=
在行首,或者什么都没有(字符串中的任何地方,即任何东西),或者什么都没有,或者行尾(与每个表达式匹配),或者…嗯,不确定preg_quote的意思它可以工作它可以运行它maches ou=whatever但不是ou=| | | | | | | |请参见。为了澄清,原始正则表达式的意思是在行的开始处有
ou=
,或者什么都没有(字符串中的任何地方,即任何东西),或者什么都没有,或者行的结尾(匹配每个表达式),或者…嗯,我不知道你说的preg是什么意思,它能起作用,但是不能用ou=| | |+1来诊断。我想OP真的需要
(^ |,)ou=\|{3}(,|$)
+1来诊断。我想OP真的需要
(^ |,)ou=\{3}(,|$)