我试图检查用户是否有权管理组:
表达式(ou=|||
)是我正在寻找的字符串
/^OU=|||$|,OU=|||$/i
在像"ou=whatever"
这样的字符串上,它返回true( - :
我确定这是管道的问题,但我不知道如何解决这个问题。
我正在使用PHP 5.x和preg_match
。
答案 0 :(得分:3)
管道是正则表达式中的元字符(意思是“或”)。你需要逃脱它们:
/^OU=\|{3}$|,OU=\|{3}$/i
您确定正确使用了字符串的起始和结束锚吗?现在,这个正则表达式只匹配字符串
OU=|||
和
<any number of characters>,OU=|||
答案 1 :(得分:1)
您需要逃避管道并包含一些括号以提高可读性:
/(^OU=\|\|\|$)|(,OU=\|\|\|$)/i
答案 2 :(得分:0)
$has_permission = in_array('OU=|||', explode(',', $permission_string));