查找距离内两个字符串的方法

查找距离内两个字符串的方法

我有大量文本文件集合。

我正在寻找一种方法来查找集合中同一行(在同一个文件中)的两个字符串,其中这两个字符串之间的字符距离不大于我指定的距离。

例如,如果文本文件包含:

The quick brown fox jumps over the lazy dog

我传递字符串fox,并且over距离为 7(或更多),它将返回此行,因为 7 是这些单词之间的距离。

我正在运行一台 Windows 8 机器。

答案1

使用 egrep。或者 grep -e 选项。

egrep -o "fox.{1,7}over" filename.txt

一般来说是:

egrep -o "string1.{1,7}string2" filename.txt

所有上述选项都只返回匹配的部分。要返回整行,请不要使用 -o 选项。因此,结果如下:

egrep "string1.{1,7}string2" filename.txt

要将其应用于文件夹中的所有文件,您可以使用:

egrep "string1.{1,7}string2" *

所有这些都假设至少有一个字符分隔。

答案2

由于您使用的是 Windows,请使用记事本++及其插件RegEx 助手

Notepad++ 插件允许用户开发正则表达式并根据打开的文档对其进行测试。

在此处输入图片描述

如果需要整行,请^.*fox.{0,7}over.*$ 使用fox.{0,7}over

相关内容