【发布时间】:2011-08-13 07:49:56
【问题描述】:
所以我有这个来自游戏服务器的超过 10,000 行消息的文件,如下所示:
11.07.23 08:40:16 [INFO] NC:移动违规:来自 yasmp 的 wolfman98 (-90.8, 64.0, 167.5) 到 (-90.7, 64.0, 167.3) 距离 (0.0, 0.0, 0.2)
11.07.23 10:57:44 [INFO] NC:移动违规:来自 yasmp 的 AKxiZeroDark (-1228.3, 11.2, 1098.7) 到 (-1228.3, 11.2, 1098.7) 距离 (0.0, 0.0, 0.0)
我拥有的当前正则表达式代码是:\d{1,4}\.\d{1},它匹配到目前为止所有粗体:
11.07.23 08:40:16 [INFO] NC:移动违规:来自 yasmp 的 wolfman98(-90.8,64.0,167.5) 到 (-90.7, 64.0, 167.3) 距离 (0.0, 0.0, 0.2)
我一直无法找到一种方法来获取仅显示的部分:
(-1228.3, 11.2, 1098.7) 到 (-1228.3, 11.2, 1098.7)
在“距离”字之前,开头没有时间戳,最终替换成这样:
11.07.23 08:40:16 [INFO] NC:移动违规:来自 yasmp 的 wolfman98 (-#, #, #) 到 (-#, #, #) 距离 (0.0, 0.0, 0.2)
11.07.23 10:57:44 [INFO] NC:移动违规:来自 yasmp 的 AKxiZeroDark (-#, #, #) 到 (-#, #, #) 距离 (0.0, 0.0, 0.0)
还有一点额外的信息,数字可以是负数也可以不是,范围从 1.0 位到 1234.0 位,这就是为什么我需要帮助在“距离”一词之前再次匹配。
编辑:甚至,如果整个事情没有出现也可以:
11.07.23 08:40:16 [INFO] NC:移动违规:来自 yasmp 的 wolfman98 距离 (0.0, 0.0, 0.2)
11.07.23 10:57:44 [INFO] NC:移动违规:来自 yasmp 的 AKxiZeroDark 距离 (0.0, 0.0, 0.0)
【问题讨论】:
标签: regex string-matching