Thanks! still confused, could you explain more? or more examples? Thanks again!
On Fri, Aug 19, 2011 at 4:40 AM, Ben Fritz <[email protected]> wrote: > > > On Aug 18, 11:02 am, baumann Pan <[email protected]> wrote: >> Hi Gurus, >> >> I could not understand the descriptions below about the usage of \@!. >> "a.\{-}p\@!" will match any >> "a", "ap", "aap", etc. that isn't followed by a "p", because the "." >> can match a "p" and "p\@!" doesn't match after that. >> >> I know why "a" matches the pattern. but I don't understand why "ap" >> could match the pattern "a.\{-}p\@!", so does "aap". >> why "appppp" also matches the pattern? >> >> from the pattern "a.\{-}p\@!", I can tell: >> if the pattern is a.{-}p, it will match ap, aaaap and >> absdfasdfasdasdfasdp since .\{-} could be 0 to more chars as few as >> possible,but followed with a p. >> if\@! is after p, does it mean p should not appear at the end? why ap >> is ok? adsfasdasdfap appp is matched the pattern "a.\{-}p\@!"????? >> > > 'a' matches because .\{-} could be zero characters > 'ap' matches because .\{-} matches the p, I don't think .\{-} will p, since \{-} is matching as few as possible. >and then the next character > is not a p, matching the p\@! with zero width. End-of-line is also > "not a p" so that matches as well. > > The root of the problem is the use of the '.' character which also > matches the p. why . matches p? I don't understand since . is followed by \{-}, which mean as few as possible, so I think a.\{-} will only a, aa, aa, aaa, etc. > If you want to rule out ap, aaap, etc. then you'd want > a[^p]* or similar. > > -- > You received this message from the "vim_use" maillist. > Do not top-post! Type your reply below the text you are replying to. > For more information, visit http://www.vim.org/maillist.php > -- You received this message from the "vim_use" maillist. Do not top-post! Type your reply below the text you are replying to. For more information, visit http://www.vim.org/maillist.php
