[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Searching for >> not >>>

In message <58421c87b2list01@xxxxxxxxxxxxxxxx>
          Martin <list01@xxxxxxxxxxxxxxxx> wrote:

>I am sure this should be simple ... but how do I search for instances
>of ">>" but I do not want ">>>" to be included?

Not so simple, I suspect. Here is a script using lpeg. Note
that the pattern is defined recursively as a grammar. I do not think
it is possible to do this without (prioritized) alternatives,
which rules out Lua's standard pattern-matching.

local lnum = 0
local match, P, V in lpeg
local arr = P ">"
local arr2 = arr*arr
local other = 1 - arr
local start = arr2*other  -- beginning of line
local stop = arr2*P (-1)  -- end of line
local p = start + stop
local pat = P { p + other * V(1) } -- grammar
for line in io.lines (arg[1]) do
    lnum += 1
    if match (pat, line) then
      print (lnum, ":", line)
    end -- if
end -- for

Gavin Wraith (gavin@xxxxxxxxxxxxxxx)
Home page: http://www.wra1th.plus.com/