好吧,正则表达式大师,我怎样才能改变我的逻辑来修复这个?
我做了一个正则表达式:
(,[,]+)
它应该删除一行末尾的额外逗号。 (格式化为字符串时,行尾为\ 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并在此之前删除任何逗号,直到非逗号。
关于如何做到这一点的任何想法?
由于
答案 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
是包含输入文本的文件)。