[ale] Regex question
Chris Fowler
cfowler at outpostsentinel.com
Thu Mar 11 23:44:29 EST 2004
On Thu, 2004-03-11 at 23:34, Mike Murphy wrote:
> ah, yeah, stuff like awk won't know what \d is. Try this:
>
> echo XMI313 | awk '/XMI[0-9][0-9][0-9]/ {print $0}'
>
I think this is the first one that would be required.
> this is a little neater:
>
> echo XMI333 | awk '/XMI[0-9]+/ {print $0}'
>
If I did XMI0 then the string would hit. The remaining 01 would be
ignored by the program. That would be an unanticipated consequence.
So an error code is basically a few letters followed by numbers. The
letters represent a group and the numbers represent a specific error
condition. I'm trying to group them to reduce load on the program. I
have to search for 1000 possible errors.
> but could have unanticipated consequences. For instance, if you do that
> with an input of something like 'XMI3334', its going to find that, but
> that's also true of the first example. (because the substring matched.
> That's probably ok for your purposes. If not, you might try anchoring
> that with a ^ and a $ if necessary (assuming that would work for your
> stream).
>
> Mike
>
>
> Christopher Fowler wrote:
> > On Thu, Mar 11, 2004 at 11:13:04PM -0500, Mike Murphy wrote:
> >
> >>unless I'm missing something, something like this:
> >>
> >>=~ /(XMI\d\d\d)/ should work. The entire string matched will show up in
> >>$1 afteward. This presumes that not other characters will show in the
> >>string.
> >
> >
> > I must be doing something wrong then, I'm using AWK to validate the regex.
> > The perl Expect module will actually do the matching based on the regular
> > expression so I do not think anything that is perl specific will work. That
> > is why I'm testing with awk
> >
> > echo XMI | awk '/XMI\d\d\d/ {print $0}'
> >
More information about the Ale
mailing list