La regex utilisée dans PostgreSQL est en fait implémenté à l'aide d'un progiciel écrit par Henry Spencer. Ce n'est pas bizarre, ça a ses propres avantages, particularités.
L'une des différences par rapport aux moteurs de regex NFA habituels est la limite de mot. Ici, \Y
correspond à une limite de non-mot. Les autres modèles dont vous avez besoin sont assez connus.
Donc, vous devez utiliser '^(\w+)|\Y\w'
motif et un '\1'
remplacement.
Détails :
^
- début de l'ancre de chaîne(\w+)
- Groupe de capture 1 caractères correspondants de 1 mot ou plus (ceci sera référencé par\1
du motif de remplacement)|
- ou\Y\w
- un caractère de mot précédé d'un autre caractère de mot.
Le \1
est appelé un remplacement backreference numéroté
, qui place simplement la valeur capturée avec le groupe 1 dans le résultat de remplacement.