проблема preg_match - PullRequest
       6

проблема preg_match

2 голосов
/ 04 мая 2010

Я пытаюсь получить кое-что из строки в php. В RegexBuddy и Regular expression tester (аддон Firefox) он работает хорошо, но php дает мне следующее:

Предупреждение: preg_match () [function.preg-match]: компиляция не удалось: несоответствующие скобки в смещение 34 в D: \ путь \ example.php по линии 62

мой шаблон "/.{4}_tmp\\([A-Za-z0-9.\\]*)\(([0-9]*)\) : (.*)/i"

пример строки: C:\Temp\browseide\projects\32\821C_tmp\SourceFiles\main.c(8) : error C2143: syntax error : missing ';' before 'for'

что RegexBuddy получает:

821C_tmp\SourceFiles\main.c(8) : error C2143: syntax error : missing ';' before 'for'
Group 1:    SourceFiles\main.c
Group 2:    8
Group 3:    error C2143: syntax error : missing ';' before 'for'

Ответы [ 2 ]

2 голосов
/ 04 мая 2010

Вам нужно снова избежать обратной косой черты, как только PHP-строка проанализирует эту строку:

/.{4}_tmp\([A-Za-z0-9.\]*)\(([0-9]*)\) : (.*)/i

Попробуйте echo "/.{4}_tmp\\([A-Za-z0-9.\\]*)\(([0-9]*)\) : (.*)/i";

Вы должны иметь \\\\ внутри ваших двойных кавычек, если вы хотите \\ в шаблоне

2 голосов
/ 04 мая 2010

Вам необходимо избежать обратной косой черты в строке PHP:

"/.{4}_tmp\\\\([A-Za-z0-9.\\\\]*)\\(([0-9]*)\\) : (.*)/i"
...