m (fixing category) |
(Redirect to VimTipp802) |
||
(8 intermediate revisions by 3 users not shown) | |||
Line 1: | Line 1: | ||
+ | #REDIRECT [[Search_for_lines_not_containing_pattern_and_other_helpful_searches]] |
||
⚫ | |||
+ | {{duplicate|802|1180}} |
||
− | {{Tip |
||
+ | {{TipImported |
||
|id=220 |
|id=220 |
||
+ | |previous=219 |
||
− | |title=Regexp: Match every word except 'foo' |
||
+ | |next=222 |
||
− | |created= |
+ | |created=2002 |
|complexity=intermediate |
|complexity=intermediate |
||
|author=Michael Geddes |
|author=Michael Geddes |
||
|version=6.0 |
|version=6.0 |
||
|rating=52/26 |
|rating=52/26 |
||
⚫ | |||
− | |text= |
||
+ | |category2= |
||
⚫ | |||
⚫ | |||
⚫ | |||
+ | <pre> |
||
+ | \v<(foo>)@!\k+> |
||
+ | </pre> |
||
⚫ | |||
− | <pre>\v<(foo>)@!\k+></pre> |
||
⚫ | |||
− | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
The non-magic version is: |
The non-magic version is: |
||
+ | <pre> |
||
− | < |
+ | \<\(foo\>\)\@!\k\+\> |
⚫ | |||
+ | </pre> |
||
+ | |||
⚫ | |||
+ | <pre> |
||
⚫ | |||
+ | </pre> |
||
+ | ==References== |
||
⚫ | |||
+ | *{{help|/\@!}} |
||
⚫ | |||
+ | ==Comments== |
||
− | <!-- parsed by vimtips.py in 0.462915 seconds--> |
Latest revision as of 15:37, 1 July 2013
Duplicate tip
This tip is very similar to the following:
These tips need to be merged – see the merge guidelines.
Tip 220 Printable Monobook Previous Next
created 2002 · complexity intermediate · author Michael Geddes · version 6.0
This is a regular expression that matches all words except 'foo'
\v<(foo>)@!\k+>
\v
Very magic<
Start-of-word(Foo>)
The atom 'Foo' followed by end-of-word@!
Match (with zero length) when the previous atom doesn't match.\k+
Match one or more Keywords>
Match end-of-word.
The non-magic version is:
\<\(foo\>\)\@!\k\+\>
The use of \@!
can be very tricky. According to the Vim help files, it is often easier to use \@<!
instead. For example, to find all 'bar' strings unless they are part of 'foobar', use the following (non-magic):
\(foo\)\@<!bar