Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [MariaDB] REGEXP_REPLACE zastąpienie jednej grupy przechwytującej inną
michalprog
post 6.09.2019, 18:21:04
Post #1





Grupa: Zarejestrowani
Postów: 25
Pomógł: 0
Dołączył: 16.01.2012

Ostrzeżenie: (0%)
-----


Dzień dobry.

Mam takie problem: chciałbym zastąpić wartość jednej z grup przechwytujących inną wartością, w MariaDB, przy użyciu REGEXP_REPLACE.

Mam taki przykładowy kod:

  1. SELECT REGEXP_REPLACE('Czterdzieści [abc]fun{4}\fun{5}fun{6}[/abc] lat minęło','([^\\\\])(fun)','\\2');

Niestety, kod nie może działać dobrze. Wiem, że grupę można wskazać przez \N, gdzie N to numer od 1 do 9, oznaczający numer grupy przechwytującej. Chciałbym zastąpić tylko jedną z grup innym tekstem. Nie chcę manipulować kolejnością grup, tylko zastąpić, w tym przypadku, wszystkie wystąpienia fun bez backslasha, na fun z backslashem, z tym, żeby nie modyfikować fun, które ma już backslash (w tym wypadku, środkowe (drugie)).

Czy jest jakis sposób aby to osiągnąć?

Tutaj kod w testerze dla regexp https://regex101.com/r/gSHXe1/1/

Proszę o pomoc.
Dziękuję
Michał
Go to the top of the page
+Quote Post
javafxdev
post 6.09.2019, 19:48:07
Post #2





Grupa: Zarejestrowani
Postów: 95
Pomógł: 7
Dołączył: 27.10.2015

Ostrzeżenie: (0%)
-----


Wklej wiersz jaki chcesz zastąpić i jak ma wyglądać po zmianie. Najlepiej w formie CREATE TABLE następnie INSERT INTO zeby dało się jakoś nad tym pracować i wtedy się zobaczy
Go to the top of the page
+Quote Post
trueblue
post 6.09.2019, 22:13:16
Post #3





Grupa: Zarejestrowani
Postów: 6 761
Pomógł: 1822
Dołączył: 11.03.2014

Ostrzeżenie: (0%)
-----


  1. SELECT REGEXP_REPLACE('Czterdzieści [abc]fun{4}\\fun{5}fun{6}[/abc] lat minęło','([^\\\\])fun','\\1\\\\fun');


--------------------
Go to the top of the page
+Quote Post
michalprog
post 7.09.2019, 07:26:10
Post #4





Grupa: Zarejestrowani
Postów: 25
Pomógł: 0
Dołączył: 16.01.2012

Ostrzeżenie: (0%)
-----


Bardzo dziękuję! Odpowiedź pojawiła się też na 4programmers. Dziękuję! smile.gif
https://4programmers.net/Forum/Bazy_danych/...wytujacych_inna
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 16.04.2024 - 06:22