我不确定为什么这不起作用...在多个regex
检查器和测试人员中完美运行。但是当它在PHP
中运行时,我得到了这个错误:
Warning: `preg_match()` [function.preg-match]:
Compilation failed: nothing to repeat at offset 6 in /home/splose/public_html/index/index.php on line 49
即时运行:
if(preg_match('[\\/^$.|?*+():<>]', $username)){}
答案 0 :(得分:6)
也许您可以尝试划分您的模式?:
if(preg_match('/[\\/^$.|?*+():<>]/', $username)){}
直接来自PHP Docs:
Often used delimiters are forward slashes (/), hash signs (#) and tildes (~).
答案 1 :(得分:0)
我认为您应该将正则表达式与定界符正斜杠(/)一起使用
// wrong pattern
$pattern = '[\\/^$.|?*+():<>]';
// right pattern
$pattern = '/[\\/^$.|?*+():<>]/';
if(preg_match($pattern, $username)){}