Mike Bresnahan wrote:
>I have a perl/regular-expression question. I want to match lines in a web
>server log file based on multiple URL parameters. The X parameters may come
>in any order. The order is unimportant to me. Can I express this in a
>regular expression? Something like the following would make sense, but I
>don't see a logical AND in the docs, only a logical OR.
>
>(foo)&(bar)&(beef)
>
>This would match all of the following:
>
>foo=423&bar=234&beef=234
>bar=423&beef=234&foo=2423
>bar=2342&foo=234&beef=234234
>
>Note that I have a need to express this in a single regular expression.
>
>Mike Bresnahan
>
If you have a fixed number of URLs on a line, and just want to make sure
that they contain all the ones you want, you can do:
if( $foo =~ m/[123][123][123]/ ) // Will match if 1, 2, or 3 are
present 3 times
If you're just talking about seeing if one of the URLs you're matching
against is present in a given line, you'd do it like this:
if( $foo =~ m/[123]/ ) // Will match if 1, 2, or 3 are present anywhere
in $foo
Hard to get more specific without knowing what the data format is.
As for logical AND, it's '&&':
if( ($foo == 1) && ($bar == 2) )
{ // Do stuff }
Michael Vieths
Foeclan at Visi.com
_______________________________________________
tclug-devel mailing list
tclug-devel at mn-linux.org
https://mailman.real-time.com/mailman/listinfo/tclug-devel