Re: Sv: Re: Sv: Re: regex match and special characters

From: Adrian Klaver <adrian(dot)klaver(at)aklaver(dot)com>
To: Andreas Joseph Krogh <andreas(at)visena(dot)com>
Cc: pgsql-general(at)lists(dot)postgresql(dot)org
Subject: Re: Sv: Re: Sv: Re: regex match and special characters
Date: 2018-08-16 15:13:40
Message-ID: abb828a5-3483-c595-4316-a9ee48837e86@aklaver.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

On 08/16/2018 07:47 AM, Andreas Joseph Krogh wrote:
> På torsdag 16. august 2018 kl. 16:32:40, skrev Adrian Klaver
> <adrian(dot)klaver(at)aklaver(dot)com <mailto:adrian(dot)klaver(at)aklaver(dot)com>>:
>
> On 08/16/2018 07:04 AM, Andreas Joseph Krogh wrote:
>
> > char(2006) produces the wrong character as 2006 is the hex-value. You
> > have to use 8198:
> > andreak(at)[local]:543310.4 andreak=# select version();
> >
> ┌────────────────────────────────────────────────────────────────────────────────────────────────┐
> > │                                            version
> >                                              │
> >
> ├────────────────────────────────────────────────────────────────────────────────────────────────┤
> > │ PostgreSQL 10.4 on x86_64-pc-linux-gnu, compiled by gcc (Ubuntu
> > 7.3.0-16ubuntu3) 7.3.0, 64-bit │
> >
> └────────────────────────────────────────────────────────────────────────────────────────────────┘
> > (1 row)
> >
> > andreak(at)[local]:543310.4 andreak=# select 'abcd'||chr(8198) ~
> 'abcd\s';
> > ┌──────────┐
> > │ ?column? │
> > ├──────────┤
> > │ t        │
> > └──────────┘
> > (1 row)
>
> Argh, read the wrong line. Thanks for the correction. Still:
>
> test=# select version();
>                                        version
>
> ------------------------------------------------------------------------------------
>   PostgreSQL 10.5 on x86_64-pc-linux-gnu, compiled by gcc (SUSE Linux)
> 4.8.5, 64-bit
> (1 row)
>
>
> test=# select 'abcd'||chr(8198) ~ E'abcd\s';
>   ?column?
> ----------
>   f
> (1 row)
>
> When using E-syntax you need to double the backslash for escaping:
> andreak(at)[local]:543310.4 andreak=# select 'abcd'||chr(8198) ~ E'abcd\\s';
> ┌──────────┐
> │ ?column? │
> ├──────────┤
> │ t        │
> └──────────┘
> (1 row)

Hmm:

test=# show standard_conforming_strings;
standard_conforming_strings
-----------------------------
off
(1 row)

test=# show escape_string_warning;
escape_string_warning
-----------------------
on
(1 row)

test=# select 'abcd'||chr(8198) ~ 'abcd\s';
WARNING: nonstandard use of escape in a string literal
LINE 1: select 'abcd'||chr(8198) ~ 'abcd\s';
^
HINT: Use the escape string syntax for escapes, e.g., E'\r\n'.
?column?
----------
f
(1 row)

test=# select 'abcd'||chr(8198) ~ 'abcd\\s';
WARNING: nonstandard use of \\ in a string literal
LINE 1: select 'abcd'||chr(8198) ~ 'abcd\\s';
^
HINT: Use the escape string syntax for backslashes, e.g., E'\\'.
?column?
----------
t
(1 row)

test=# set escape_string_warning = 'off';
SET
test=# show escape_string_warning;
escape_string_warning
-----------------------
off
(1 row)

test=# select 'abcd'||chr(8198) ~ 'abcd\s';
?column?
----------
f
(1 row)

test=# set standard_conforming_strings = 'on';
SET
test=# show standard_conforming_strings;
standard_conforming_strings
-----------------------------
on
(1 row)

test=# select 'abcd'||chr(8198) ~ 'abcd\s';
?column?
----------
t
(1 row)

Wonder if the OP has standard_conforming_strings='off' and
escape_string_warning='off'?

> --
> *Andreas Joseph Krogh*
> CTO / Partner - Visena AS
> Mobile: +47 909 56 963
> andreas(at)visena(dot)com <mailto:andreas(at)visena(dot)com>
> www.visena.com <https://www.visena.com>
> <https://www.visena.com>

--
Adrian Klaver
adrian(dot)klaver(at)aklaver(dot)com

In response to

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Tom Lane 2018-08-16 15:18:09 Re: Sv: Re: Sv: Re: regex match and special characters
Previous Message Andreas Joseph Krogh 2018-08-16 14:47:15 Sv: Re: Sv: Re: regex match and special characters