繁体   English   中英

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

[英]Regex remove carriage return from end of lines if it exists

数据如下所示:

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

干杯

如果要匹配\\r以外的所有行- 回车 -使用

[^\r\n]+

这是一个否定的字符类[^...] ),它匹配一个或多个\\r\\n以外的(由于+量)字符。

现场演示

试试这个正则表达式:

^([^\\r\n]*)(:?\\r)?$

这是假设您的意思是排除\\r而不提取\\r因为您的原始正则表达式会这样做。

便携式解决方案。

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

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM