регулярният израз, използван в PostgreSQL всъщност се реализира с помощта на софтуерен пакет, написан от Хенри Спенсър. Не е странно, има своите предимства, особености.
Една от разликите от обичайните NFA regex машини е границата на думата. Тук, \Y
съответства на граница без думи. Останалите модели, от които се нуждаете, са доста известни.
Така че трябва да използвате '^(\w+)|\Y\w'
шаблон и '\1'
замяна.
Подробности :
^
- начало на котва на низ(\w+)
- Група за заснемане 1 съвпадащ с 1+ знаци на думата (това ще се нарича с\1
от шаблона за замяна)|
- или\Y\w
- дума char, която е предшествана от друга дума.
\1
се нарича заместваща номерирана обратна препратка
, което просто поставя стойността, уловена с Група 1, в резултата за заместване.