3

我应该使用什么正则表达式模式在连续行上找到两个具有相似值的字符串

例如,如果我有类似的东西:

(注意:以下值已在前面缩进)

    end
    end

我将如何使用vi编辑器搜索这个?

编辑

I would like it to match "    end" and "    end" or "  end" and "  end"
4

2 回答 2

2

很简单:

/pattern\npattern/

pattern你想找的东西在哪里。您的问题太模糊,无法提供更有用的答案。

于 2012-07-18T05:08:22.930 回答
1

既然你提到值是缩进的......你可以使用这个模式来克服这个问题:

/end\n\s*end

代表空白,这\s意味着它可以是制表符或空格。这*意味着前面的字符可以没有或无限(在这种情况下,空格)。如果您只想匹配两个空格,您可以使用/end\n endor /end\n\s\send。如果您想匹配四个,您可以类似地全部输入它们,或者/end\n\s\{4}end只匹配 4 个空白字符(空格或制表符)。

我认为您真正想做的是匹配相同的行。所以你可以做到/\(^.*$\)\n\1这一点。如果您想要一定数量的相同行/\(^.*$\)\(\n\1\)\{15}(此示例使用 15,但您可以将其更改为您想要的任何数字或切换\{15}任何*匹配项。

于 2012-07-18T05:29:29.803 回答