找回密码
 加入
搜索
查看: 3361|回复: 5

[效率算法] 请问这是正则的BUG么【如何匹配每一行数据中最后一个数值中的问题】

[复制链接]
发表于 2011-9-16 20:44:34 | 显示全部楼层 |阅读模式
悬赏50金钱已解决
本帖最后由 tryhi 于 2011-9-16 20:45 编辑
14311.83        7822.88        5766.21
4812.6        5205.2        5577.24
4809        4448.39        4400
如何匹配出5766.215577.244400
为什么(?m)[.\d]+$匹配失败

但为什么(?m)^[.\d]+却匹配成功


最终用了大绯狼的\s+([.\d]+)?(?:[\r\n]+|$)来替换

最佳答案

查看完整内容

用了(?m)后 $ 是行尾,前面是 [.\d]+ 代表点或数字,但没有匹配回车符,所以在有回车符的1、2行没有匹配,而第3行末没有回车,所以可以匹配到4400。 改为或
发表于 2011-9-16 20:44:35 | 显示全部楼层
本帖最后由 afan 于 2011-9-16 21:50 编辑

用了(?m)后 $ 是行尾,前面是 [.\d]+ 代表点或数字,但没有匹配回车符,所以在有回车符的1、2行没有匹配,而第3行末没有回车,所以可以匹配到4400。
改为
(?m)([.\d]+)\v?$
(?m)(\S+)\v?$

评分

参与人数 1金钱 +50 贡献 +20 收起 理由
tryhi + 50 + 20 学习了

查看全部评分

发表于 2011-9-16 21:31:01 | 显示全部楼层
\S+(?=\v|$)

评分

参与人数 1金钱 +50 贡献 +20 收起 理由
tryhi + 50 + 20 学习了

查看全部评分

 楼主| 发表于 2011-9-16 21:39:41 | 显示全部楼层
原来行尾是回车符啊
发表于 2011-9-16 21:59:22 | 显示全部楼层
正则神人出现啦!哈哈!
发表于 2011-9-21 09:08:22 | 显示全部楼层
(\S+)\s
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-5-10 09:32 , Processed in 0.081164 second(s), 23 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表