bug-bash
[Top][All Lists]
Advanced

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

Re: regex confusion -- not matching; think it should?


From: DJ Mills
Subject: Re: regex confusion -- not matching; think it should?
Date: Wed, 19 Jun 2013 12:29:55 -0400

On Wed, Jun 12, 2013 at 6:53 PM, Linda Walsh <bash@tlinx.org> wrote:

> The trace looks aprolike this:
>
>> ./ifc#137(handle_bonding_ops)> (( 18>3 ))
>>> ./ifc#138(handle_bonding_ops)> [[  mode=balance-rr 0 =~
>>>
>>     
>> ^([a-zA-Z][-a-zA-Z0-9_]+)=(.+)**[[:space:]]+[a-zA-Z][-a-zA-Z0-**9_]+=.+.*$
> ]]
>
>> ./ifc#142(handle_bonding_ops)> [[  mode=balance-rr 0 =~
>>> ^([a-zA-Z][-a-zA-Z0-9_]+)=(.+)**$ ]]
>>> ./ifc#145(handle_bonding_ops)> break
>>>
>>
> (#138 is all 1 line)
> ---- the source code looks like this:
>
>   my id='[a-zA-Z][-a-zA-Z0-9_]+'
>   while ((${#bond_ops}>3)); do
>     if [[ $bond_ops =~ ^($id)=(.+)[[:space:]]+$id=.+.***$ ]]; then
>       ...
>     elif [[ "$bond_ops" =~ ^($id)=(.+)$ ]]; then
>      ...
>     else break; fi
>
> ---
> I would think the 2nd match would match it, but no luck...
> Note the 2nd source line has double quotes due to testing...
> Originally it had no quotes, as I don't believe they are
> necessary in this case.  Regardless, neither way matches.
>
> So if not obvious, bond_ops has "mode=balance-rr 0" in it.
>
> Thanks...
>
>
>
Just FYI, you should be using [[:alpha:]] and [[:alnum:]], as they're safe
for all locales. You can't count on a-z or A-Z unless the locale is C or
POSIX. And no, quotes on the LHS of [[ are not needed, as wordsplitting and
pathname expansion do not occur within the [[ keyword.


reply via email to

[Prev in Thread] Current Thread [Next in Thread]