Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.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_Date_Vim - Fatal编程技术网

Regex 如何检查同一行中是否有双工?

Regex 如何检查同一行中是否有双工?,regex,date,vim,Regex,Date,Vim,我有一个文本文件,其中有许多行,如下所示: IMG_0106.JPG y:\2004_05_23_bern basel\ 2004_05_23 IMG_0107.JPG y:\2004_05_23_dortmund\ 2004_05_23 IMG_0108.JPG y:\2004_05_25_paris\ 2004_05_24 IMG_0110.JPG y:\2004_05_25_paris\ 200

我有一个文本文件,其中有许多行,如下所示:

IMG_0106.JPG    y:\2004_05_23_bern basel\       2004_05_23
IMG_0107.JPG    y:\2004_05_23_dortmund\         2004_05_23
IMG_0108.JPG    y:\2004_05_25_paris\            2004_05_24
IMG_0110.JPG    y:\2004_05_25_paris\            2004_05_25
我想检查一下同一行中是否有双重日期 哪里没有

第1、2、4行有日期匹配。
第3行没有日期匹配(2004\u 05\u 25!=2004\u 05\u 24)

我知道如何查找双线,但在这种情况下,我不知道如何在同一行中查找双线。
有人能帮我吗

这应该有效:

grep '\([0-9]\{4\}_[0-9]\{2\}_[0-9]\{2\}\).*\1'

这个带有regex的
:g
命令将为您提供具有重复日期的行,您可以在这些行上执行操作:

:g/\v(\d{4}_\d{2}_\d{2}).*\1

如果你只是想找到它们(或者用hlsearch突出显示它们),只需做
/sameRegex

谢谢你,肯特:)什么是
\1
?顺便问一下,您知道否定方式(如何仅突出显示不匹配的项目)?@remann
\1
参考组1、
\2
参考组2,等等。这里的
\1
是先前匹配的日期(在
(..)
中)。如果您想选择那些不匹配项,请使用
v:/…
而不是
:g/…
谢谢,我原以为您的正则表达式也会匹配我问题中的第3行,但效果很好(仍然不知道为什么它与第3行不匹配)。和。。我只想突出显示日期,但我会找到的。:)非常感谢你!,仍然没有发现如何只突出显示日期,而不是中间的文本。你知道吗?那就是:g或:v找出带有dup/un dup日期的行。匹配部分高亮显示。如果要进一步突出显示。这是另一个话题。对于匹配行中的一个日期,您可以:
v/\v\zs(\d{4}\ud{2}\ud{2})\ze.*\1/