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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/vim/5.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中找出以下字符串模式,并用其他东西替换它。你能告诉我同样的regex吗 1. 11. 20. 21. 99. 基本上是一个/两个数字后跟点。试过这个吗 [^0-9][0-9][0-9]\. 或者你试过了,但没用 它有一个三位数和一个点的问题,即“123”。也将被捕获我想你可以做如下事情(我对VI不是很有经验,所以可能有更好的方法) 因此,这基本上是使用\d\+.来搜索出现一次或多次的数字,后跟 MyString是您的替换字符串 :%s是替换命令,:s只搜索当前行 /gc查找匹配

我想在
vim
中找出以下字符串模式,并用其他东西替换它。你能告诉我同样的
regex

 1.
11.
20.
21.
99.
基本上是一个/两个数字后跟点。

试过这个吗

[^0-9][0-9][0-9]\.
或者你试过了,但没用


它有一个三位数和一个点的问题,即“123”。也将被捕获

我想你可以做如下事情(我对VI不是很有经验,所以可能有更好的方法)

因此,这基本上是使用
\d\+.
来搜索出现一次或多次的数字,后跟

MyString
是您的替换字符串

:%s
是替换命令,
:s
只搜索当前行


/gc
查找匹配项的次数与它在行(
g
)上出现的次数相同,并在每次替换(
c
)之前要求确认。

1或2位后跟一个点的正则表达式是:

\<\d\d\?\.

\n我在您回答后尝试过,但它不起作用。我尝试使用[^0-9][0-9][0-9]\在gvim中查找并替换。它说找不到模式。@nrathaus:他没有使用代码标签,所有的数字都出现在同一行,但它们是不同的。我已经编辑了他的问题,但现在在你的回答中,当前的
[^0-9]
避免了匹配。最初你想要两个数字和一个点,现在它是一个或多个数字和一个点,所以我的[^0-9]在那里是为了避免三个数字的情况,同时也是为了确保至少有两个no,在Vim中
\b
不是单词边界,这是退格
\
是单词的边界。而
是在Vim中写入
\=
(或
\?
)的。@glts-thx。我已经有一段时间没有接触到vi了。我没有意识到它是如此的不同。虽然至少对正则表达式没有基本的理解,但是你不会从Vim中得到太多。认真地说,开始学习吧,无论是从网上的教程还是Vim的内置
:help
。如果你需要选择一些数字序列,那么你可以简单地使用{times}:123 234 123456:%s/\d\{3}/MyString/g
\<\d\d\?\.
s/\<\d\d\?\./foo/g