我在类似下面的文本文件中有GUID数据:
D3C8D467-52DA-4B4F-8821-A589019ADDE2
我在 VIM 中尝试了以下模式匹配。但是,他们没有成功。
[0-9A-F]{8}\-[0-9A-F]{4}\-[0-9A-F]{4}\-[0-9A-F]{4}\-[0-9A-F]{12}
[0-9A-F]{8}[-][0-9A-F]{4}[-][0-9A-F]{4}[-][0-9A-F]{4}[-][0-9A-F]{12}
在 VIM 中查找GUID的正确模式是什么?
答案 0 :(得分:2)
Vim需要一种不同的转义:
which(slope==1)
在vim中查看[A-F0-9]\{8}-[A-F0-9]\{4}-[A-F0-9]\{4}-[A-F0-9]\{4}-[A-F0-9]\{12}
,文档非常好。
答案 1 :(得分:2)
你的问题是你没有逃离{4}
部分,但是你应该,并且你正在逃避破折号,但你不应该。要解决这个问题,请执行
[0-9A-F]\{8}-[0-9A-F]\{4}-[0-9A-F]\{4}-[0-9A-F]\{4}-[0-9A-F]\{12}
要解决此类问题的正则表达式问题,请尝试设置
:set incsearch
因此您可以在键入时看到匹配的搜索。我还建议为this page添加书签,这是对vim-regex进行故障排除的绝佳资源。
还有一些你可以为风格可读性做的事情。
我建议使用\x
元字符而不是范围,正弦它们在功能上是等效的。这给出了:
\x\{8}-\x\{4}-\x\{4}-\x\{4}-\x\{12}
您无需重复
\x\{4}-
三次。您只需要三场比赛:
\x\{8}-\(\x\{4}-\)\{3}\x\{12}
你可以打开“魔术”,让你使用更少的反斜杠。
\v\x{8}-(\x{4}-){3}\x{12}
这是我所知道的最短且最易阅读的版本。