繁体   English   中英

正则表达式-删除行末的任意数量的逗号

[英]Regex - remove any number of commas at the end of a line

好吧,Regex专家,我该如何更改自己的逻辑以解决此问题?

我做了一个正则表达式:

(,[,]+)

应该删除行尾的多余逗号。 (行尾为\\ r \\ n),格式为字符串时。

它有效(有点)。

这是字符串:

Date,1-Jul-18,1-Jul-19,1-Jul-20,1-Jul-21,1-Jul-22,1-Jul-23,1-Jul-24,\r\nDate,1-Jul-18,1-Jul-19,1-Jul-20,1-Jul-21,1-Jul-22,1-Jul-23,1-Jul-24,,,,,\r\nDate,1-Jul-18,1-Jul-19,1-Jul-20,1-Jul-21,1-Jul-22,1-Jul-23,1-Jul-24,,,,,\r\nDate,1-Jul-18,1-Jul-19,1-Jul-20,1-Jul-21,1-Jul-22,1-Jul-23,1-Jul-24,,\r\n

当我运行该正则表达式时,其结果为:

Date,1-Jul-18,1-Jul-19,1-Jul-20,1-Jul-21,1-Jul-22,1-Jul-23,1-Jul-24,\r\nDate,1-Jul-18,1-Jul-19,1-Jul-20,1-Jul-21,1-Jul-22,1-Jul-23,1-Jul-24\r\nDate,1-Jul-18,1-Jul-19,1-Jul-20,1-Jul-21,1-Jul-22,1-Jul-23,1-Jul-24\r\nDate,1-Jul-18,1-Jul-19,1-Jul-20,1-Jul-21,1-Jul-22,1-Jul-23,1-Jul-24\r\n

我需要删除第一行末尾的逗号(我想我需要先找到\\ r \\ n并杀死所有逗号,直到出现非逗号为止。

有关如何执行此操作的任何想法?

谢谢

(,+$)也许? (一个或多个逗号,紧接在行尾。)

如果您的语言支持正向前进,请尝试以下操作-

([,]*)(?=\\r\\n)

我认为您可以匹配一个或多个,然后使用,+\\\\r\\\\n匹配\\r\\n ,+\\\\r\\\\n 不知道如何使用C#替换它。 在Perl中我会做

perl -pi -e 's/,+\\r\\n/\\r\\n/g' c.txt

(假设c.txt是包含您输入文本的文件)。

暂无
暂无

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

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