不习惯用正则表达式玩很多东西,但现在它确实让我很头疼。
我有一个多行CSV文件,我需要在第一个字段中找到以特定值开头的行,然后为该行的所有剩余字段设置组,即使某些字段为空。 CSV的长度可以变化
例如:
monday,1,8,nice,,sunny,cold,
tuesday,3,2,hello,bye,,sad,tomorrow,
wednesday,8,ok,4,xxx,,999,welcome,
我希望匹配以“tuesday”开头的CSV行,并将所有字段排除在第一个匹配组之外:
Group1 = 3
Group2 = 2
Group3 = hello
Group4 = bye
Group5 =
Group6 = sad
Group7 = tomorrow
不幸的是我坚持使用正则表达式,因为该工具只处理正则表达式。在Go中用几行代码解析它会容易得多,但在这种情况下根本不可能。
在IRC群组上找到了一些帮助,但它只能使用固定长度的CSV字符串:
^tuesday,([^,]+),([^,]+),([^,]+),([^,]+),([^,]*),([^,]+),([^,]+),$
是否可以使用可变长度来完成?
由于
答案 0 :(得分:0)
如果列数已修复,则可以使用:
^tuesday,([^,]*),([^,]*),([^,]*),([^,]*),([^,]*),([^,]*),([^,]*)
它找到以星期二开头的行,并创建7个组,捕获不是,
的所有内容。
您可以在此处查看:https://regexr.com/3pn81。