Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex 使用正则表达式Vim将特定位置的字符替换为另一个字符_Regex_Vim - Fatal编程技术网

Regex 使用正则表达式Vim将特定位置的字符替换为另一个字符

Regex 使用正则表达式Vim将特定位置的字符替换为另一个字符,regex,vim,Regex,Vim,还是个正则表达式新手,但我还在学习。我想做的是在这里用Vim和正则表达式替换粗体的数字“1”。但问题是,它不仅要为这条线这样做,而且要为这一位置上的每一条线这样做。换句话说,这个“1”正好在我平面文件的第29个空格。我想把它改成“2”。谁能帮我一把吗? 先谢谢你 2017033112xxxxxxxx1942055212007 %s/^\(.\{28}\)1/\12/ 这将保留每行的前28个字符,并将第29位的“1”替换为“2” %s/\%29c[0-9]/2/g 这将保留每行的前28个字符,

还是个正则表达式新手,但我还在学习。我想做的是在这里用Vim和正则表达式替换粗体的数字“1”。但问题是,它不仅要为这条线这样做,而且要为这一位置上的每一条线这样做。换句话说,这个“1”正好在我平面文件的第29个空格。我想把它改成“2”。谁能帮我一把吗? 先谢谢你

2017033112xxxxxxxx1942055212007

%s/^\(.\{28}\)1/\12/
这将保留每行的前28个字符,并将第29位的“1”替换为“2”

%s/\%29c[0-9]/2/g
这将保留每行的前28个字符,并将第29位的“1”替换为“2”

%s/\%29c[0-9]/2/g
它将在第29列中找到任何数字(从0到9),并将其替换为2


它将在第29列中找到任何数字(从0到9),并将其替换为2。

使用match start
\zs
将第29位的
1
更改为
2

%s/^.\{28\}\zs1/2
之前

123456789012345678901234567890123
2017033112xxxxxxxxx19420525212007
2017033112xxxxxxxxx19420525292006
2017033112xxxxxxxxx19420525212005
之后

123456789012345678901234567890123
2017033112xxxxxxxxx19420525222007
2017033112xxxxxxxxx19420525292006
2017033112xxxxxxxxx19420525222005

使用匹配开始
\zs

%s/^.\{28\}\zs1/2
之前

123456789012345678901234567890123
2017033112xxxxxxxxx19420525212007
2017033112xxxxxxxxx19420525292006
2017033112xxxxxxxxx19420525212005
之后

123456789012345678901234567890123
2017033112xxxxxxxxx19420525222007
2017033112xxxxxxxxx19420525292006
2017033112xxxxxxxxx19420525222005

很抱歉,@Rahul,我看不到你的答复。@Rahul我只能看到“像这样?”点击它进行跟踪。很抱歉,@Rahul,我看不到你的答复。@Rahul我只能看到“像这样?”点击它进行跟踪。这太棒了。谢谢你,克里斯!我现在可以看到我在哪里,它基本上逃避了所有的事情,直到第28个角色。这太棒了。谢谢你,克里斯!现在,我可以看到我在哪里,它基本上逃避了第28个角色之前的一切。谢谢Jose。这也很酷。它适用于多个字符的字符串吗?如果用一个匹配多个字符的表达式替换[0-9]正则表达式,那么这也应该适用。谢谢。这也很酷。它适用于多个字符的字符串吗?如果用一个匹配多个字符的表达式替换[0-9]正则表达式,那么它也应该适用。