Regex help...

Thierry Douez th.douez at gmail.com
Mon Jun 5 04:06:07 EDT 2017


Hi Paul,


AFAIK you need to deal with an hybrid approach (regex + livecode)

So, here is one way to do it:


   put 3 into pPage

   repeat for each line T in tCiCData

      if matchText( T, "(?x) \t (\d+) , \d+ ,  (\d+)  , \d+ \z", n1, n2)
then

      if (n1 <= pPage) and (n2 >= pPage) then

          put T & cr after tCiCfilteredData

      end if

      end if

   end repeat

   put tCiCfilteredData


But for the curious with an open-mind here is another solution:


   get "perl -ne 'print if /\t(\d+),\d+,(\d+),\d+$(?(?{$1>PP ||
$2<PP})(*FAIL))/'"

   get replaceText( IT, "PP", pPage)

   put shell( IT && "/your/path/CiCData.txt")


What? the regex do the comparison!
Well yes and no; in Perl we can embed Perl code *inside* the regex,
like: (?{$1>PP || $2<PP})

$1>PP || $2<PP is a Perl expression.

As we have a mixture of a regex pattern and some perl code;
that is in fact another hybrid solution.


And of course, you can do it  using only chunks , item and so on...


Have fun,

Thierry




2017-06-04 17:35 GMT+02:00 Paul Dupuis via use-livecode <
use-livecode at lists.runrev.com>:

> I have a tab and cr delimited table of data, a sample line of which is
> below:
>
> 1<tab>Test<tab>4052,12594<tab>1,4052,3,2388<cr>
>
> Can someone help me revise this regex to match what I need?
>
> Thank you kindly, in advance.
>

-- 
------------------------------------------------
Thierry Douez - sunny-tdz.com
sunnYrex - sunnYtext2speech - sunnYperl - sunnYmidi - sunnYmage



More information about the use-livecode mailing list