我有一个正则表达式,它在Ruby中有效,但在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);
并显示以下错误
警告:第11行上C:\examplep\htdocs\REGEX\index.php中的preg_match()[function.preg match]:未知修饰符']'
这个正则表达式句子错在哪里?
使用不同的正则表达式分隔符,不要忘记启用多行修饰符(?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);
检查这个例子,我希望它对u:-有帮助
preg_match("/(?<DateTime>[^]]+)]s+(?<TypeConnection>b.*?(?:W+w+)}?W+.*?b)s+'(?<User>.*?)'s+
(?<Detail>.*?$)", "2014-11-01 14:40:02", $results)