Chinaunix

标题: vim如何查找同时存在某两个单词的行 [打印本页]

作者: yecheng_110    时间: 2011-05-24 11:39
标题: vim如何查找同时存在某两个单词的行
单词出现没有先后顺序
作者: yecheng_110    时间: 2011-05-24 12:40
http://vim.wikia.com/wiki/Vim_Tips_Wiki:Imported_tips
Find two words in either order.
这里面有
可惜公司打不开
作者: tempname2    时间: 2011-05-24 13:19
Finding two words in either orderEdit Finding two words in either order sectionEdit

You can search for a line that contains two words, in any order. For example, the following pattern finds all lines that contain both "red" and "blue", in any order:

.*red\&.*blue

In a pattern, \& separates alternates, each of which has to match at the same position. The two alternates in this example are:

    .*red (will match all characters from the beginning of a line to the end of the last "red"); and
    .*blue (will match all characters from the beginning of a line to the end of the last "blue").

A line which contains both "red" and "blue" will match both alternates, starting at the beginning of the line. The pattern .*red\&.*blue finds the last alternate (but only if all alternates match at the same position), so if you are highlighting matches, you will see text matched by .*blue highlighted.

An alternative procedure is to use a pattern that explicitly finds "red" followed by "blue", or "blue" followed by "red":

\(red.*blue\)\|\(blue.*red\)

To search for lines that contain only the whole words "red" and "blue", in either order, use one of the following patterns:

.*\<red\>\&.*\<blue\>
\(\<red\>.*\<blue\>\)\|\(\<blue\>.*\<red\>\)
作者: yecheng_110    时间: 2011-05-24 13:40
回复 3# tempname2


    谢谢
作者: notbusy    时间: 2011-05-24 14:01
回复 3# tempname2


    red.*blue\|blue.*red
作者: txdgtwpv    时间: 2011-05-25 09:31
正则表达式啊,lz




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2