我有一个很长的数字列表,需要引用每个数字,但我不知道如何把一个reqex做。我有一个这样的清单
6240, 6261, 6270, 6280, 6510
我想看起来像这样
"6240",1,"6261",1,"6270",1,"6280",1,"6510"
以便能够在另一个工具中正确导入它。regex是我的克星:-)
oaxa6hgo1#
这可以通过两个替换来完成。可以先用"$1"替换(\d+),然后用,1,替换,。
"$1"
(\d+)
,1,
,
7cjasjjr2#
因为我没有足够的声誉发表评论,所以作为一个答案发帖。blhsing的注意--你可以在一个正则表达式替换中做到这一点,例如,在python中,它看起来像这样:
result = re.sub(r"( +)?(\d+)( +)?", r'"\2",1', subject)
我添加了一些可选元素(( +)?),以说明数字两侧的可变间距。
( +)?
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) }
此逻辑代码工作正常!!
3条答案
按热度按时间oaxa6hgo1#
这可以通过两个替换来完成。可以先用
"$1"
替换(\d+)
,然后用,1,
替换,
。7cjasjjr2#
因为我没有足够的声誉发表评论,所以作为一个答案发帖。blhsing的注意--你可以在一个正则表达式替换中做到这一点,例如,在python中,它看起来像这样:
我添加了一些可选元素(
( +)?
),以说明数字两侧的可变间距。des4xlb03#
您可以使用下面的Go代码获得所需的结果。
此逻辑代码工作正常!!