powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / regexp_replace, помогите убрать дубли
6 сообщений из 6, страница 1 из 1
regexp_replace, помогите убрать дубли
    #39543034
sven_12
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Помогите пожалуйста убрать дубли в строке вида

Код: plsql
1.
2.
3.
with q as
 (select 'qwer<br>qwer<br>asdf<br>asdf<br>zxcv<br>zxcv' val from dual)
select * from q



используя regexp_replace

Должно получиться
Код: plsql
1.
qwer<br>asdf<br>zxcv



Спасибо.
...
Рейтинг: 0 / 0
regexp_replace, помогите убрать дубли
    #39543046
Код: plsql
1.
2.
3.
4.
5.
6.
with q as (select 'qwer<br>qwer<br>asdf<br>asdf<br>zxcv<br>zxcv' val from dual),
     t as (select replace(val,'<br>',';') v from q),
     t1 as (select level l, regexp_substr(v,'[^;]+',1,level) v  from t connect by level <= regexp_count(v,';')),
     t2 as (select min(l) l, v from t1 group by v)
select listagg(v,'<bt>') within group (order by l)
from t2     
...
Рейтинг: 0 / 0
regexp_replace, помогите убрать дубли
    #39543049
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plsql
1.
regexp_replace(val, '([^<>]+)\<br\>\1', '\1')

Неискушённому это может показаться правильным решением.
Код: plsql
1.
'qwer<br>qwerty<br>asdf<br>df<br>zxcv<br>cvmnb'

...
Рейтинг: 0 / 0
regexp_replace, помогите убрать дубли
    #39543052
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plsql
1.
'(^|\>)([^<>]+)\<br\>\2(\<|$)', '\1\2\3'

...
Рейтинг: 0 / 0
regexp_replace, помогите убрать дубли
    #39543127
sven_12
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Elic,

подскажи пожалуйста, почему в случае если в строке встречается точка a href="myurl=: . "
то все перестает работать :(

Код: plsql
1.
2.
3.
4.
5.
with q as
 (select '<a href="myurl=:.">qwer</a><br><a href="myurl=:.">qwer</a><br><a href="myurl=:.">asdf</a><br><a href="myurl=:.">asdf</a><br><a href="myurl=:.">zxcv</a><br><a href="myurl=:.">zxcv</a>' val
    from dual)
select regexp_replace(val, '([^.]+)(\<br\>\1)+', '\1') res
  from q



И как это обойти?

Т.е. без "точки" все работает,

Код: plsql
1.
2.
3.
4.
5.
with q as
 (select '<a href="myurl=::">qwer</a><br><a href="myurl=::">qwer</a><br><a href="myurl=::">asdf</a><br><a href="myurl=::">asdf</a><br><a href="myurl=::">zxcv</a><br><a href="myurl=::">zxcv</a>' val
    from dual)
select regexp_replace(val, '([^.]+)(\<br\>\1)+', '\1') res
  from q



а с ней нет :(
...
Рейтинг: 0 / 0
regexp_replace, помогите убрать дубли
    #39543142
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sven_12И как это обойти? http://www.bugtraq.ru/forum/faq/general/smart-questions.html] RTFM
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / regexp_replace, помогите убрать дубли
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]