tryhi 发表于 2011-9-16 20:44:34

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

本帖最后由 tryhi 于 2011-9-16 20:45 编辑

14311.83      7822.88      5766.21
4812.6      5205.2      5577.24
4809      4448.39      4400如何匹配出5766.21、5577.24、4400
为什么(?m)[.\d]+$匹配失败

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


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

afan 发表于 2011-9-16 20:44:35

本帖最后由 afan 于 2011-9-16 21:50 编辑

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

afan 发表于 2011-9-16 21:31:01

\S+(?=\v|$)

tryhi 发表于 2011-9-16 21:39:41

原来行尾是回车符啊

hzxymkb 发表于 2011-9-16 21:59:22

正则神人出现啦!哈哈!

3mile 发表于 2011-9-21 09:08:22

(\S+)\s
页: [1]
查看完整版本: 请问这是正则的BUG么【如何匹配每一行数据中最后一个数值中的问题】