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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/google-sheets/3.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 guid的vim模式是什么_Regex_Vim_Pattern Matching_Guid - Fatal编程技术网

Regex guid的vim模式是什么

Regex guid的vim模式是什么,regex,vim,pattern-matching,guid,Regex,Vim,Pattern Matching,Guid,我在文本文件中有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的正确模式是什么 Vim需要一种不同的逃逸方

我在文本文件中有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的正确模式是什么

Vim需要一种不同的逃逸方式:

[A-F0-9]\{8}-[A-F0-9]\{4}-[A-F0-9]\{4}-[A-F0-9]\{4}-[A-F0-9]\{12}

检查
:帮助模式概述
在vim中,文档非常好。

vim需要一种不同的转义:

[A-F0-9]\{8}-[A-F0-9]\{4}-[A-F0-9]\{4}-[A-F0-9]\{4}-[A-F0-9]\{12}

检查vim中的帮助模式概述,文档非常好。

您的问题是您没有逃逸
{4}
部分,但是您应该逃逸,您正在逃逸破折号,但是您不应该逃逸。要解决这个问题,只需

[0-9A-F]\{8}-[0-9A-F]\{4}-[0-9A-F]\{4}-[0-9A-F]\{4}-[0-9A-F]\{12}
要解决类似这样的正则表达式问题,请尝试设置

:set incsearch
因此,您可以在键入搜索时看到匹配的搜索。我还建议使用书签,这是解决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}
    

这是我所知道的最短和最可读的版本。

你的问题是你没有逃逸
{4}
部分,但你应该逃逸,你正在逃逸破折号,但你不应该逃逸。要解决这个问题,只需

[0-9A-F]\{8}-[0-9A-F]\{4}-[0-9A-F]\{4}-[0-9A-F]\{4}-[0-9A-F]\{12}
要解决类似这样的正则表达式问题,请尝试设置

:set incsearch
因此,您可以在键入搜索时看到匹配的搜索。我还建议使用书签,这是解决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}
    

这是我所知道的最短、最可读的版本。

不错的版本,我不知道
\v
!不错的一个,不知道
\v