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

时间:2011-06-22 07:02:46

标签: c# 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并在此之前删除任何逗号,直到非逗号。

关于如何做到这一点的任何想法?

由于

3 个答案:

答案 0 :(得分:3)

或许

(,+$)? (一个或多个逗号紧跟在一行的末尾。)

答案 1 :(得分:1)

如果您的语言支持正向前瞻,请尝试此操作 -

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

答案 2 :(得分:0)

我认为您可以使用,匹配一个或多个\r\n后跟,+\\r\\n。不知道怎么用C#替换那个抱歉。在Perl我会做

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

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