使用正则表达式在CSV列表中的数字上设置qoutes

时间:2018-09-20 07:12:47

标签: regex csv

我有一长串数字,需要在每个数字上加引号,但是我不确定如何将一个reqex组合在一起。

我有一个这样的列表

6240, 6261, 6270, 6280, 6510

我想看起来像这样

"6240",1,"6261",1,"6270",1,"6280",1,"6510"

以便能够将其正确导入其他工具。

regex是我的复仇女神:-)

3 个答案:

答案 0 :(得分:2)

这可以通过两次替换完成。您可以先将(\d+)替换为"$1",然后将,替换为,1,

答案 1 :(得分:0)

将其发布为答案,因为我没有足够的声誉来发表评论。为了引起大家的注意-您可以在单个正则表达式替换中执行此操作,例如在python中,它看起来像:

rng.Value = Date
rng.NumberFormat = "dd/mm/yyyy"

我添加了一些可选元素(result = re.sub(r"( +)?(\d+)( +)?", r'"\2",1', subject) )来考虑数字两侧的可变间距。

答案 2 :(得分:0)

您可以使用下面的Go代码获得所需的结果。

import "fmt"
import "regexp"

func main() {
  str := []string{"6240", "6261", "6270", "6280", "6510"} 
  fmt.Println("Before regex : ",str)
  for i,value := range str{
       r := regexp.MustCompile(value)
       replacer := fmt.Sprintf("%s%s%s%s","\"",value,"\"",",1,")
       str[i] = r.ReplaceAllString(value, replacer)
}
  fmt.Println("After regex  : ",str)   
} 

此逻辑代码工作正常!