bug-bash
[Top][All Lists]
Advanced

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

Re: Regular expression match operation with character classes fails in b


From: Dave B
Subject: Re: Regular expression match operation with character classes fails in bash 3.2
Date: Sat, 28 Jun 2008 10:43:06 +0200
User-agent: Thunderbird 2.0.0.14 (X11/20080529)

John E. Wulff wrote:

>     I have just updated from "openSUSE 10.2" to openSUSE 11.0" Linux. My 
> backup shell script
>     is now broken. I tracked the problen down to the latest version of 
> "bash".
> 
>     The relatively new binary operator =~ does not match a regular 
> expression which contains a
>     character class in square brackets: eg. $xp =~ "[0-9]10"
> 
>     The behaviour is the same on a 32 bit machine with openSUSE 11.0 and
>     GNU bash, version 3.2.39(1)-release (i586-suse-linux-gnu)
> 
>     All three script lines below match correctly on SuSE Linux 9.3 with
>     GNU bash, version 3.00.16(1)-release (i586-suse-linux)
> 
>     Unfortunately I no longer have access to the bash version which worked
>     correctly with openSUSE 10.2
> 
>     My observation is the fault was introduced fairly recently.
> 
> Repeat-By:
>     The following very simple regular expression matches:
> xp=310; if [[ $xp =~ "310" ]]; then echo "$xp matched"; else echo "$xp 
> not matched"; fi
> 
>     This does not match in Bash Version 3.2
> xp=310; if [[ $xp =~ "[0-9]10" ]]; then echo "$xp matched"; else echo 
> "$xp not matched"; fi
> 
>     This does not match either (more like the line in my broken shell 
> script)
> xp=310; if [[ $xp =~ "[0-9][0-9]*" ]]; then echo "$xp matched"; else 
> echo "$xp not matched"; fi

That has been discussed some days ago, it's the expected behavior. See

http://lists.gnu.org/archive/html/bug-bash/2008-06/msg00083.html

-- 
D.


reply via email to

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