This is the mail archive of the
mailing list for the Cygwin project.
Re: Cygwin bash regexp matching doesn't treat "\b" properly
This might come across as slightly smart-assed, but if you wrote your
script in Perl, you wouldn't have the platform problem, nor the
word-boundary problem. True you would have a Perl problem, but that
would still be several orders of magnitude easier than trying to have
Linux, Cygwin and Posix come to agreement!! :)
On Tue, Nov 24, 2009 at 2:40 PM, aputerguy <email@example.com> wrote:
> Dave Korn writes:
>> Bash man page for '~=' refers to man regex(3) which refers to man regex(7)
>> which describes word boundary markers as below:
>> $ [[ "foo" =~ [[:\<:]]foo[[:\>:]] ]]; echo $?
>> $ [[ "foobar" =~ [[:\<:]]foo[[:\>:]] ]]; echo $?
> Thanks David!
> I had actually greppe'd both regex(3) and regex(7) before but I was looking
> for the word "word" or "boundary" - neither of which are used in this
> HOWEVER, this solution while sweet for cygwin-bash, has the CONVERSE
> Apparently, the special strings [[:<:]] and [[:>:]] are not recognized under
> Linux regex(7) - they give return code 2.
> So, now I have the frustrating situation where \\b works in Linux but not in
> Cygwin while [[:<:]] works in Cygwin but not in Linux.
> BTW, both regex(7) pages even imply they are POSIX.
> Linux: "regex POSIX.2 regular expressions"
> Cygwin: "regex - POSIX 1003.2 regular expressions"
> Such incompatibility is a PITA because then in a mixed Windows/Linux
> environment one has to remember to clutter scripts with ugly "if [ "$OSTYPE"
> = "cygwin" ] exceptions, etc.
> View this message in context: http://old.nabble.com/Cygwin-bash-regexp-matching-doesn%27t-treat-%22%5Cb%22-properly-tp26500158p26503748.html
> Sent from the Cygwin list mailing list archive at Nabble.com.
> Problem reports: ? ? ? http://cygwin.com/problems.html
> FAQ: ? ? ? ? ? ? ? ? ? http://cygwin.com/faq/
> Documentation: ? ? ? ? http://cygwin.com/docs.html
> Unsubscribe info: ? ? ?http://cygwin.com/ml/#unsubscribe-simple
Problem reports: http://cygwin.com/problems.html
Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple