Компиляция не удалась: нечего повторять по смещению 6 - PullRequest
3 голосов
/ 10 декабря 2011

Я не уверен, почему это не сработает ... прекрасно работает в нескольких 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)){}

Ответы [ 2 ]

6 голосов
/ 10 декабря 2011

Возможно, вы можете попытаться разграничить ваш шаблон?:

if(preg_match('/[\\/^$.|?*+():<>]/', $username)){}

Взят прямо из PHP Документов :

Often used delimiters are forward slashes (/), hash signs (#) and tildes (~).
0 голосов
/ 13 ноября 2018

Я думаю, вы должны использовать выражение регулярных выражений с разделителями прямой косой черты (/)

// wrong pattern
$pattern = '[\\/^$.|?*+():<>]';
// right pattern
$pattern = '/[\\/^$.|?*+():<>]/';
if(preg_match($pattern, $username)){}
...