preg_match sorun

2 Cevap php

Ben php bir dizeden bazı şeyler almaya çalışıyorum. RegexBuddy ve Düzenli ifade test (firefox addon) olarak iyi çalışır, ancak php bana aşağıdaki verir:

Warning: preg_match() [function.preg-match]: Compilation failed: unmatched parentheses at offset 34 in D:\path\example.php on line 62

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

Bir örnek dize: C:\Temp\browseide\projects\32\821C_tmp\SourceFiles\main.c(8) : error C2143: syntax error : missing ';' before 'for'

RegexBuddy ne alır:

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 Cevap

Sen PHP dize ters eğik çizgi kaçış gerekir:

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

PHP dize ile sonuna kadar bu dizeyi ayrıştırır kez tekrar geri-eğik çizgi kaçış gerekir:

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

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

Eğer desen bir \\ istiyorsanız Eğer çift tırnak içine \\\\ olmalıdır