- 论坛徽章:
- 2
|
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\>\) |
|