in reply to Multi-line string regex and negative inline match

1) qr/\A(?:[^|]*\|\s*activate complete\s*\|[^\n]*\n?)*\z/ms

2) qr/\A(?:(?!failed).)*\z/ms

Update: Squashy go the bugs!

Replies are listed 'Best First'.
Re^2: Multi-line string regex and negative inline match
by josh803316 (Beadle) on Jul 30, 2010 at 22:31 UTC
    Number 1 fails for me but number 2 works perfectly. I'm using this string of text:
    ONT |Status |% Complete ----|--------------------|---------- 1.1 |activate complete |100 1.2 |activate complete |100 1.3 |activate complete |100 1.4 |activate complete |100 1.5 |activate complete |100 1.6 |activate complete |100 1.7 |activate complete |100 1.8 |activate complete |100 1.9 |activate complete |100 1.10|activate complete |100 1.11|activate complete |100 1.12|activate complete |100 1.13|activate complete |100 1.14|activate complete |100 1.15|activate complete |100 1.16|activate complete |100 1.17|activate complete |100 1.18|activate complete |100 1.19|activate complete |100 1.20|activate complete |100 1.21|activate complete |100 1.22|activate complete |100 1.23|activate complete |100 1.24|activate complete |100 1.25|activate complete |100 1.26|activate complete |100 1.27|activate complete |100 1.28|activate complete |100 1.29|activate complete |100 1.30|activate complete |100 1.31|activate complete |100 1.32|activate complete |100 2.1 |activate complete |100 2.2 |activate complete |100 2.3 |activate complete |100 2.4 |activate complete |100 2.5 |activate complete |100 2.6 |activate complete |100 2.7 |activate complete |100 2.8 |activate complete |100

      by looking at the given regex, it fails because of the header column, So you'll have to either remove the header column or account for its existence.

      qr/\A.*?-(?:[^|]*\|\s*activate complete\s*\|[^\n]*\n?)*\z/ms; Mabye?

        I would simply insert (?:[^\n]*\n){2} after the \A.

        qr/(?x: \A (?:[^\n]*\n){2} (?: [^|]* \| \s* activate[ ]complete \s* \| [^\n]* \n? )* \z )/ms;

        For the finicky, [^|] could be changed to [^|\n]

        I guess my problem was that I had an extra empty line with a newline at the end of the string, if I remove the newline the regex matches (thank you). I'll just have to match for 0 or 1 potential newlines