preg_match_all不返回匹配项

问题描述 投票:0回答:0
我正在尝试返回这两行数据:

21:12:44 | Player "MinecraftNerd8" (DEAD) (id=630DB6BBFCCC2E66508D086E78D202BFA4FB1FB5 pos=<5215.0, 13515.6, 204.5>)[HP: 0] hit by Player "sbog 9000" (id=EAD177E916EE7D01F6DC47C59EAF4802A6061420 pos=<5211.9, 13516.6, 203.8>) into Torso(11) for 35 damage (Bullet_12GaugePellets) with BK-43 from 3.32238 meters 21:12:44 | Player "MinecraftNerd8" (DEAD) (id=630DB6BBFCCC2E66508D086E78D202BFA4FB1FB5 pos=<5215.0, 13515.6, 204.5>) killed by Player "sbog 9000" (id=EAD177E916EE7D01F6DC47C59EAF4802A6061420 pos=<5211.9, 13516.6, 203.8>) with BK-43 from 3.32238 meters

第一线代表[HP:0]所示的最后一击,第二行被击中了第二行,第二行被球员杀死,这是最终的命中,因为付款人死亡之后的进一步命中仍将被记录下来。
我正在使用的preg_match_all代码

/(.*?)Player "(.*)" (DEAD) (id=(.*) pos=<(.*)>)[HP: 0] hit by Player "(.*)" (id=(.*) pos=<(.*)>) into (.*) for (.*) damage (.*) with (.*) from (.*) meters\s* (.*?)Player "(.*)" (DEAD) (id=(.*) pos=<(.*)>) killed by Player (.*)/

我在在线php.io沙箱中尝试此操作,但是无论我更改什么,它仍然不会返回任何数据。
对任何帮助表示赞赏
Edit: 香港专业教育学院尝试了以下,现在获得数据匹配 但是,它的必不可少的线条与[hp:0]返回

/(.*?) | Player "(.*)" (DEAD) (id=(.*) pos=<(.*)>) [HP:0] hit by Player "(.*)" (id=(.*) pos=<(.*)>) into (.*) for (.*) damage (.*) with (.*) from (.*) meters\s(.*?)Player "(.*)" (DEAD) (id=(.*) pos=<(.*)>) killed by Player (.*)/

fixed:感谢大家的帮助。 正确的正则是

/(.*?)Player "(.*)" \(DEAD\)\ \(id=(.*) pos=<(.*)>\)\[HP: 0\] hit by Player "(.*)" \(id=(.*)\ pos=<(.*)>\) into (.*)\((.*)\) for(.*)damage (.*) with (.*) from (.*)\s*(.*) | Player "(.*)" \(DEAD\) (id=(.*)) (.*) killed by Player/
我在较大的日志文件上运行了上述内容,返回的数据如下

[0] => 22:09:04 | Player "GigglingCobra52" (DEAD) (id=BE2ABB8084EEC781014AC8E6B5C88A5A90F855BF pos=<1658.8, 15056.8, 451.4>)[HP: 0] hit by Player "Cogito8434" (id=26DE70CAEF00AE579AF8CA21ED3F1648DB316F1E pos=<1659.4, 14990.8, 441.4>) into Head(0) for 36.7336 damage (Bullet_308WinTracer) with M70 Tundra from 66.7822 meters 22:09:04 | Player "GigglingCobra52" (DEAD) (id=BE2ABB8084EEC781014AC8E6B5C88A5A90F855BF pos=<1658.8, 15056.8, 451.4>) killed by Player "Cogito8434" (id=26DE70CAEF00AE579AF8CA21ED3F1648DB316F1E pos=<1659.4, 14990.8, 441.4>) with M70 Tundra from 66.7822 meters

我现在可以使用返回的数组数据并拉我需要的信息。 再次感谢大家的帮助,以指导我如何解决这个问题。

fixed:感谢大家的帮助。正确的正则是

/(.*?)Player "(.*)" \(DEAD\)\ \(id=(.*) pos=<(.*)>\)\[HP: 0\] hit by Player "(.*)" \(id=(.*)\ pos=<(.*)>\) into (.*)\((.*)\) for(.*)damage (.*) with (.*) from (.*)\s*(.*) | Player "(.*)" \(DEAD\) (id=(.*)) (.*) killed by Player/

我在较大的日志文件上运行了上述内容,返回的数据如下

[0] => 22:09:04 | Player "GigglingCobra52" (DEAD) (id=BE2ABB8084EEC781014AC8E6B5C88A5A90F855BF pos=<1658.8, 15056.8, 451.4>)[HP: 0] hit by Player "Cogito8434" (id=26DE70CAEF00AE579AF8CA21ED3F1648DB316F1E pos=<1659.4, 14990.8, 441.4>) into Head(0) for 36.7336 damage (Bullet_308WinTracer) with M70 Tundra from 66.7822 meters 
22:09:04 | Player "GigglingCobra52" (DEAD) (id=BE2ABB8084EEC781014AC8E6B5C88A5A90F855BF pos=<1658.8, 15056.8, 451.4>) killed by Player "Cogito8434" (id=26DE70CAEF00AE579AF8CA21ED3F1648DB316F1E pos=<1659.4, 14990.8, 441.4>) with M70 Tundra from 66.7822 meters

[1] => 22:12:08 | Player "Cogito8434" (DEAD) (id=26DE70CAEF00AE579AF8CA21ED3F1648DB316F1E pos=<1656.3, 15053.1, 444.8>)[HP: 0] hit by Player "GigglingCobra52" (id=BE2ABB8084EEC781014AC8E6B5C88A5A90F855BF pos=<1654.7, 15052.8, 444.8>) into Torso(12) for 29.0213 damage (Bullet_556x45) with M4-A1 from 1.57712 meters 
22:12:08 | Player "Cogito8434" (DEAD) (id=26DE70CAEF00AE579AF8CA21ED3F1648DB316F1E pos=<1656.3, 15053.1, 444.8>) killed by Player "GigglingCobra52" (id=BE2ABB8084EEC781014AC8E6B5C88A5A90F855BF pos=<1654.7, 15052.8, 444.8>) with M4-A1 from 1.57712 meters
我现在可以使用返回的数组数据并拉我需要的信息。再次感谢大家的帮助,以指导我如何解决这个问题。

php regex preg-match-all
最新问题
© www.soinside.com 2019 - 2025. All rights reserved.