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

时间:2019-02-19 20:11:03

标签: regex vim

我正在使用gvim编辑文档。该文件的摘录是:

ST*123*foo
WIL*ST*bar
Z91*R*Station

使用正则表达式,我想在第二行中选择ST,该行位于两个*之间(并且不在行首),因此我可以突出显示它特定颜色。

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

1 个答案:

答案 0 :(得分:1)

您将需要使用先行断言和先行断言:

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

详细信息:

  • \v:非常神奇,可以避免过度逃脱
  • (\*)@<=:在背后断言我们后面还有*
  • ST:匹配ST
  • (\*)@=:先行断言我们前面有*