2014-11-13 5 views
2
에서 작동하지 않습니다

루비에서 작동하지만, PHP에서 작동하지 않습니다 정규식이 :정규식은 PHP와 함께 작동하지만 루비

$filename = 'files/Dial.txt'; 
$input_lines=fonl($filename,80); 
echo $input_lines; 
$pattern = "^\[(?<DateTime>[^]]+)\]\s+(?<TypeConnection>\b.*?(?:\W+\w+)}?\W+.*?\b)\s+'(?<User>.*?)'\s+(?<Detail>.*?$)"; 
//$pattern = preg_quote($pattern, '/'); 
preg_match_all("/".$pattern."/", $input_lines, $output_array); 
print_r($output_array); 

및 오류

경고 아래에 보여줍니다 :는 preg_match() [function.preg 경기] : 알 수없는 수정 ']'C에서 : \ XAMPP \ htdocs에이 정규 표현식 문장의 잘못은 무엇 라인 (11)

에 정규식 \의 index.php를 \?

답변

0

다른 정규 표현식 구분 기호를 사용하고 복수 행 수정 자 (?m)을 사용하도록 설정하여 정규식이 여러 줄에서 작동하도록해야합니다.

$filename = 'files/Dial.txt'; 
$input_lines=fonl($filename,80); 
echo $input_lines; 
$pattern = "(?m)^\[(?<DateTime>[^]]+)\]\s+(?<TypeConnection>\b.*?(?:\W+\w+)}?\W+.*?\b)\s+'(?<User>.*?)'\s+(?<Detail>.*?$)"; 
//$pattern = preg_quote($pattern, '/'); 
preg_match_all("~".$pattern."~", $input_lines, $output_array); 
print_r($output_array); 
+0

작동하지 것 ... – user3717270

+0

이 오류는 무엇을 생산거야? –

+0

http://www.phpliveregex.com/에서 제대로 작동하지만 내 코드에서 일부 "/"가 시작되고 끝에 추가됩니다. – user3717270

0

확인 내가 그것을 U에 도움이 될 것입니다 희망의 예 : -

preg_match("/(?<DateTime>[^]]+)\]\s+(?<TypeConnection>\b.*?(?:\W+\w+)}?\W+.*?\b)\s+'(?<User>.*?)'\s+ 
(?<Detail>.*?$)", "2014-11-01 14:40:02", $results) 
관련 문제