De regex gebruikt in PostgreSQL wordt feitelijk geïmplementeerd met behulp van een softwarepakket dat is geschreven door Henry Spencer. Het is niet vreemd, het heeft zijn eigen voordelen, eigenaardigheden.
Een van de verschillen met de gebruikelijke NFA-regex-engines is de woordgrens. Hier, \Y
komt overeen met een niet-woordgrens. De rest van de patronen die je nodig hebt, zijn vrij bekende.
U moet dus '^(\w+)|\Y\w'
. gebruiken patroon en een '\1'
vervanging.
Details :
^
- begin van snaaranker(\w+)
- Groep vastleggen 1 overeenkomende tekens van 1+ woord (hier wordt naar verwezen met\1
van het vervangingspatroon)|
- of\Y\w
- een woordteken dat wordt voorafgegaan door een ander woordteken.
De \1
heet een vervangende genummerde terugverwijzing
, dat plaatst gewoon de waarde die is vastgelegd met Groep 1 in het vervangingsresultaat.