正则表达式不适用于 PHP,但适用于 Ruby



我有一个正则表达式,它在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)

相关内容

  • 没有找到相关文章

最新更新