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 我怎样才能得到这个正则表达式输出?_Php_Regex - Fatal编程技术网

Php 我怎样才能得到这个正则表达式输出?

Php 我怎样才能得到这个正则表达式输出?,php,regex,Php,Regex,我的正则表达式在php中有问题。我需要这个来做一些评估,如果我能把这个正则表达式改到右边,那就容易多了。我使用json\u encode将最后一个数组转换为json文件 我已经尝试了很多不同的正则表达式,但从来没有得到正确的输出。现在我得到了这样的结果: [ [ "234445 01:00:34.423 ineedhelpineedhelpineedhelppls", "234445 03:04:24.932 sdfkkdkkddddddsdfsdfiieuwrepid"

我的正则表达式在php中有问题。我需要这个来做一些评估,如果我能把这个正则表达式改到右边,那就容易多了。我使用
json\u encode
将最后一个数组转换为json文件

我已经尝试了很多不同的正则表达式,但从来没有得到正确的输出。现在我得到了这样的结果:

[
    [
    "234445 01:00:34.423 ineedhelpineedhelpineedhelppls",
    "234445 03:04:24.932 sdfkkdkkddddddsdfsdfiieuwrepid",
    ],
    [
    "234445 ",
    "234445 "
    ],
    [
    "01:00:34.423",
    "01:00:34.423"
    ],
    [
    "ineedhelpineedhelpineedhelppls",
    "sdfkkdkkddddddsdfsdfiieuwrepid"
    ]

]
234445 03:04:24.932 sdfkkdkkddddddsdfsdfiieuwrepid
234445 03:04:24.932 sdfkkdkkddddddsdfsdfiieuwrepid
234445 03:04:24.932 sdfkkdkkddddddsdfsdfiieuwrepid
234445 03:04:24.932 sdfkkdkkddddddsdfsdfiieuwrepid
234445 03:04:24.932 sdfkkdkkddddddsdfsdfiieuwrepid
234445 03:04:24.932 sdfkkdkkddddddsdfsdfiieuwrepid
234445 03:04:24.932 sdfkkdkkddddddsdfsdfiieuwrepid
234445 03:04:24.932 sdfkkdkkddddddsdfsdfiieuwrepid
234445 03:04:24.932 sdfkkdkkddddddsdfsdfiieuwrepid
234443 03:04:24.932 sdfkkdkkddddddsdfsdfiieuwrepid
我的正则表达式如下所示:
preg\u match\u all('/(^\d++\s)(01:\w++\s\w++(\s++)/im',$data,$matches)

如果这样的事情真的很好:

[
    [
    "234445 01:00:34.423 ineedhelpineedhelpineedhelppls",
    "234445",
    "01:00:34.423",
    "ineedhelpineedhelpineedhelppls"
    ],
    [
    "234445 03:04:24.932 sdfkkdkkddddddsdfsdfiieuwrepid",
    "234445 ",
    "01:00:34.423",
    "sdfkkdkkddddddsdfsdfiieuwrepid"
    ]

]
.log文件如下所示:

[
    [
    "234445 01:00:34.423 ineedhelpineedhelpineedhelppls",
    "234445 03:04:24.932 sdfkkdkkddddddsdfsdfiieuwrepid",
    ],
    [
    "234445 ",
    "234445 "
    ],
    [
    "01:00:34.423",
    "01:00:34.423"
    ],
    [
    "ineedhelpineedhelpineedhelppls",
    "sdfkkdkkddddddsdfsdfiieuwrepid"
    ]

]
234445 03:04:24.932 sdfkkdkkddddddsdfsdfiieuwrepid
234445 03:04:24.932 sdfkkdkkddddddsdfsdfiieuwrepid
234445 03:04:24.932 sdfkkdkkddddddsdfsdfiieuwrepid
234445 03:04:24.932 sdfkkdkkddddddsdfsdfiieuwrepid
234445 03:04:24.932 sdfkkdkkddddddsdfsdfiieuwrepid
234445 03:04:24.932 sdfkkdkkddddddsdfsdfiieuwrepid
234445 03:04:24.932 sdfkkdkkddddddsdfsdfiieuwrepid
234445 03:04:24.932 sdfkkdkkddddddsdfsdfiieuwrepid
234445 03:04:24.932 sdfkkdkkddddddsdfsdfiieuwrepid
234443 03:04:24.932 sdfkkdkkddddddsdfsdfiieuwrepid

您只需使用
PREG\u SET\u ORDER
标志即可:

输出:

Array (
  [0] => Array (
    [0] => 234445 01:00:34.423 ineedhelpineedhelpineedhelppls
    [1] => 234445
    [2] => 01:00:34.423
    [3] => ineedhelpineedhelpineedhelppls
  )
  [1] => Array (
    [0] => 234445 03:04:24.932 sdfkkdkkddddddsdfsdfiieuwrepid
    [1] => 234445
    [2] => 03:04:24.932
    [3] => sdfkkdkkddddddsdfsdfiieuwrepid
  )
)
请注意,您还需要将正则表达式中的
01
更改为
\d+
,以匹配从开始的时间,例如
03


请不要尝试使用正则表达式解析JSON。使用合适的JSON解析器。@TimBiegeleisen我不解析JSON,我解析一个.log文件它是一个长日志文件吗?你介意在这里分享一下吗,这样我们也可以测试一下。@R.CanserYanbakan我可以给你一个类似的文件,还有其他的data@R.CanserYanbakan我编辑它