Visual Studio代码 - 正则表达式在数字之间插入数字

时间:2018-02-11 05:04:03

标签: regex replace visual-studio-code digits

我想在第7位添加“0”

010101001
010101002
010101003
010101004

并使其看起来像这样

0101010001
0101010002
0101010003
0101010004

我正在使用这个正则表达式:

(0[1-9]0[1-9]0[1-9]0[0-9][1-9])

它找到了这个模式的所有字符串,但我不知道如何将它指向位置7,如{7}但是如何使用它

由于

3 个答案:

答案 0 :(得分:1)

我们可以尝试匹配模式(?<=\d{6})并替换为零。这里的想法是在字符串后面查看并在第七个位置插入零,当我们看到当前点后面的六位数时会发生这种情况。

Dim input as string = "010101004"
Dim output as string = Regex.Replace(input, "(?<=^\d{6})", "0")
Console.WriteLine(output)

0101010004

Demo

答案 1 :(得分:0)

您应该具体说明您只想查看9位数字 如果你不这样做,它会变成模糊不清的老鼠窝。

使用断言确保只查看9位数字。

基于你的正则表达式,我建议使用它。

查找(?<!\d)((?:0[1-9]){3})(0[0-9][1-9])(?!\d)
替换${1}0${2}

格式化

 (?<! \d )                     # Not a digit behind
 (                             # (1 start), first 6 qualified digits
      (?: 0 [1-9] ){3}
 )                             # (1 end)
 ( 0 [0-9] [1-9] )             # (2), last 3 qualified digits
 (?! \d )                      # Not a digit ahead

答案 2 :(得分:0)

can use infinite-width lookahead and lookbehind从Visual Studio Code v.1.31.0版本开始没有任何约束,并且您现在不需要为此设置任何选项。

查找内容(?<=^\d{6})
替换为0

证明与测试:

enter image description here