请我有我想使用正则表达式来 preg_match 这种字符串:
$liste = 'bla0bla-__my_separator_-01blabla';
我试过了 :
if(preg_match('/^[a-zA-Z0-9]_my_separator_[a-zA-Z0-9]$/', $liste))
echo 'ok';
else echo 'not ok';
但这返回总是不行。
请高手给点意见?
PS:我认为问题在于我尝试过的_和-不支持!
提前致谢。
将您的正则表达式模式更改为:
'/^[a-zA-Z0-9_\-]+?_my_separator_[a-zA-Z0-9_\-]+?$/'
如果您只是想确定字符串中是否存在静态子字符串,您应该使用strpos()
:
if (strpos('_my_separator_', $liste) !== false) {
echo 'ok';
}
您在白名单中缺少中继器+
和-
和_
:
/^[a-zA-Z0-9\-_]+_my_separator_[a-zA-Z0-9\-_]+$/
您的原始正则表达式将匹配以下内容:
A_my_seperator_B
0_my_seperator_C
但不是:
AB_my_seperator_C