正则表达式从行尾删除回车符(如果存在)

时间:2017-02-04 00:35:07

标签: regex

数据如下所示:

0.43,0.57,0.71,0.29,0.71,1.00,0.57,1.00\r
0.43,0.57,0.71,0.29,0.71,1.00,0.57,1.00
0.43,0.57,0.71,0.29,0.71,1.00,0.57,1.00\r

我想提取回车符(在上面的示例中用\r标记)。我一直在尝试使用gm和捕获组:

(.*)(?:\\r)$

但这只匹配\r的行。我认为解决方案是在?之前添加$,但这不起作用。

演示:https://regex101.com/r/jArLdS/1

干杯

3 个答案:

答案 0 :(得分:2)

如果您想匹配除\r以外的所有行 - 回车 - 请使用

[^\r\n]+

这是一个否定字符类[^...]),它与+和{{1}以外的一个或多个(由于\r量词)字符匹配}}

答案 1 :(得分:0)

Live Demo

试试这个正则表达式:

=$E$1 + ROUND((MIN($A:$A)-A1)/((MAX($A:$A)-MIN($A:$A))/($E$1-$E$2)),0)

这假设您的意思是排除^([^\\r\n]*)(:?\\r)?$ 而不是提取\r,因为您的原始正则表达式会这样做。

答案 2 :(得分:0)

便携式解决方案。

(^.*?)(\\r)(\r\n|\n)

这是3个捕获组,从左到右,从1开始,而不是0

将您的字符串替换为捕获组1和3,跳过2。

对于大多数使用它们的语言,捕获组通常在语法上类似于\1$1