La documentazione dice che \ s è uno spazio bianco e \ S non è uno spazio bianco. Finora, niente di nuovo per regexare gli utenti.Postgees regex: il comportamento di s e S e la classe di caratteri sembra errata
Ma cerchiamo di controllare alcuni valori di ritorno:
SELECT SUBSTRING('abc a c' FROM 'a\\sc');
'a c'
SELECT SUBSTRING('abc a c' FROM 'a[\\s]c'); -- Note the character class
'a c'
SELECT SUBSTRING('abc a c' FROM 'a\\Sc');
'abc'
SELECT SUBSTRING('abc a c' FROM 'a[\\S]c'); -- Note the character class
ERROR: invalid regular expression: invalid escape \ sequence
così sembra, \ s può essere utilizzato in una classe di caratteri e \ S non può. Perché?
Thx, ho trascurato questo. BTW, ovviamente le parentesi sono ridondanti nel mio codice di esempio semplificato. – Leif
La ragione per cui sono illegali è perché 'a [^ \ s] c' funziona bene per la negazione. – hhaamu