首页 > 解决方案 > 如何检查第三列是否与PHP中的正则表达式数字匹配

问题描述

我有一个需要解析的文件,根据是否匹配,我将处理该文件。

该文件可能看起来不同,以下是不同组合的示例:

#ROW 1234 "1111"
#ROW 1234 1111
#ROW 1234 ""
#ROW 1234

我只需要知道是否有任何行的第三列有一个数字,然后也可以稍后返回该数字(即我只会得到前两行的命中,而最后两行没有命中)。我也想忽略引号。

更新: 从留下的评论到问题,我意识到我遗漏了一些重要信息来解决问题,因为#ROW 可以有另一个不应该匹配的名称,可能有制表符而不是空格,我还想要第二个和要返回的第三列,所以我将 JCode 和 Jan 的解决方案与以下正则表达式结合起来:

#ROW(?:\s+)(\S+)(?:\s+)(\d+|\"\d+\")

标签: phpregex

解决方案


你可以用

^(?:\S+\s+){2}"?\K\d+

请参阅regex101.com 上的示例


推荐阅读