我想在第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}但是如何使用它
由于
答案 0 :(得分:1)
我们可以尝试匹配模式(?<=\d{6})
并替换为零。这里的想法是在字符串后面查看并在第七个位置插入零,当我们看到当前点后面的六位数时会发生这种情况。
Dim input as string = "010101004"
Dim output as string = Regex.Replace(input, "(?<=^\d{6})", "0")
Console.WriteLine(output)
0101010004
答案 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
证明与测试: