Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
正则表达式不';不能使用PHP,但可以使用Ruby_Php_Regex - Fatal编程技术网

正则表达式不';不能使用PHP,但可以使用Ruby

正则表达式不';不能使用PHP,但可以使用Ruby,php,regex,Php,Regex,我有一个在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>.*

我有一个在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);
$filename='files/Dial.txt';
$input_lines=fonl($filename,80);
回显$input_行;
$pattern=“^\[(?[^]+)\]\s+(?\b.*?(?:\W+\W+}?\W+.*?\b)\s+”(?.*?)\s+(?.*?$);
//$pattern=preg_quote($pattern,“/”);
preg_match_all(“/”$pattern.“/”,$input_line,$output_array);
打印(输出数组);
并显示以下错误

警告:preg_match()[function.preg match]:第11行C:\xampp\htdocs\REGEX\index.php中的未知修饰符']'


这个正则表达式句子有什么错误?

使用不同的正则表达式分隔符,不要忘记启用多行修饰符
(?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);
$filename='files/Dial.txt';
$input_lines=fonl($filename,80);
回显$input_行;
$pattern=“(?m)^\[(?[^]]+)\]\s+(?\b.*(?:\W+\W+}?\W+.\b)\s+”(?.*?)\s+(?.*?$);
//$pattern=preg_quote($pattern,“/”);
preg\u match\u all(“~”$pattern.“~”,$input\u lines,$output\u array);
打印(输出数组);

检查示例我希望它对您有帮助:-

preg_match("/(?<DateTime>[^]]+)\]\s+(?<TypeConnection>\b.*?(?:\W+\w+)}?\W+.*?\b)\s+'(?<User>.*?)'\s+   
(?<Detail>.*?$)", "2014-11-01 14:40:02", $results)
preg\u match(“/(?[^]]+)\]\s+(?\b.*(?:\W+\W+)}?\W+.\b)\s+'(?.*?)\s+
(?*?$),“2014-11-01 14:40:02”,$结果)

它在中正常工作,但在我的代码中不工作一些“/”添加到开始和结束它应该是“/”作为分隔符:preg\u match(“/”$pattern.“/”,$input\u line,$output\u array);$pattern中的addind“/”不帮助返回带有regex subjects的空数组是否提供一个示例输入以及预期匹配?