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 正则表达式选择匹配的一部分_Regex_Vim - Fatal编程技术网

Regex 正则表达式选择匹配的一部分

Regex 正则表达式选择匹配的一部分,regex,vim,Regex,Vim,我正在使用gvim编辑文档。文件摘录如下: ST*123*foo WIL*ST*bar Z91*R*Station 使用regex,我想在第二行中选择ST,它位于两个*之间(并且不在一行的开头),因此我可以突出显示一种特定的颜色 我认为\*ST\*可能会起作用,但它选择了*s,这是我不想要的。我还尝试了一些{}的变体(无效),试图从我的选择中选择x个字符。您将需要使用前向和后向断言: /\v(\*)@<=ST(\*)@= /\v(\*)@这会选择不需要的*字符。使用\zs&\ze通常可

我正在使用gvim编辑文档。文件摘录如下:

ST*123*foo
WIL*ST*bar
Z91*R*Station
使用regex,我想在第二行中选择
ST
,它位于两个
*
之间(并且不在一行的开头),因此我可以突出显示一种特定的颜色


我认为
\*ST\*
可能会起作用,但它选择了
*
s,这是我不想要的。我还尝试了一些
{}
的变体(无效),试图从我的选择中选择x个字符。

您将需要使用前向和后向断言:

/\v(\*)@<=ST(\*)@=

/\v(\*)@这会选择不需要的
*
字符。使用
\zs
&
\ze
通常可以使这更容易<代码>/\*\zsST\ze\*
。参见
:h/\zs
谢谢@PeterRincker,我不知道
/\zs