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

fumotvh3  于 2023-06-25  发布在  其他
关注(0)|答案(3)|浏览(93)

我有一个很长的数字列表,需要引用每个数字,但我不知道如何把一个reqex做。
我有一个这样的清单

6240, 6261, 6270, 6280, 6510

我想看起来像这样

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

以便能够在另一个工具中正确导入它。
regex是我的克星:-)

oaxa6hgo

oaxa6hgo1#

这可以通过两个替换来完成。可以先用"$1"替换(\d+),然后用,1,替换,

7cjasjjr

7cjasjjr2#

因为我没有足够的声誉发表评论,所以作为一个答案发帖。blhsing的注意--你可以在一个正则表达式替换中做到这一点,例如,在python中,它看起来像这样:

result = re.sub(r"( +)?(\d+)( +)?", r'"\2",1', subject)

我添加了一些可选元素(( +)?),以说明数字两侧的可变间距。

des4xlb0

des4xlb03#

您可以使用下面的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)   
}

此逻辑代码工作正常!!

相关问题