Модераторы: LSD
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Регулярное выражение и оператор regexp_replace 
:(
    Опции темы
Feller
Дата 17.4.2015, 17:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 138
Регистрация: 2.7.2010

Репутация: нет
Всего: нет



Добрый день!

Как составить регулярное выражение, чтоб в запросе оператор  REGEXP_REPLACE был только один.

Код

select j.ek, 
                cast(j.creation_time as date) creation_time,
                xmltype(regexp_replace(REGEXP_REPLACE(j.request_clob,'[^" .=:;?</>0-9A-Za-z]',''),'(<Text>)(.*)(</Text)','')) as t_xml
         from  t_request j


PM MAIL   Вверх
LSD
Дата 17.4.2015, 19:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


Профиль
Группа: Модератор
Сообщений: 15709
Регистрация: 24.3.2004

Репутация: 18
Всего: 537



А что именно ты пытаешься описать регуляркой?


--------------------
Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it.
PM MAIL WWW   Вверх
Feller
Дата 20.4.2015, 13:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 138
Регистрация: 2.7.2010

Репутация: нет
Всего: нет



Регуляркой, я очищаю xml от ненужных символов, затем удаляю тег <Text>.
PM MAIL   Вверх
Zloxa
Дата 21.4.2015, 10:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Чо?
****


Профиль
Группа: Завсегдатай
Сообщений: 3470
Регистрация: 12.9.2008

Репутация: 37
Всего: 161



Цитата(Feller @  20.4.2015,  14:34 Найти цитируемый пост)
удаляю тег <Text>. 

DELETEXML
Цитата(Feller @  17.4.2015,  18:54 Найти цитируемый пост)
/

Unescaped delimiter
Цитата(Feller @  20.4.2015,  14:34 Найти цитируемый пост)
от ненужных символов

Как минимум еще амперсанд не ненужен и квардратные скобки - являются спецсимволоми разметки xml

Это сообщение отредактировал(а) Zloxa - 21.4.2015, 10:36


--------------------
Достоверно известно, что 89% людей доверяют статистике взятой с потолка smile
PM   Вверх
Feller
Дата 21.4.2015, 14:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 138
Регистрация: 2.7.2010

Репутация: нет
Всего: нет



Как в регулярку 
Код

[^" .=:;?</>0-9A-Za-z]
 добавить условие чтоб удалялся символ / , но не удалялся />.
PM MAIL   Вверх
tzirechnoy
Дата 22.4.2015, 10:47 (ссылка) |    (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1173
Регистрация: 30.1.2009

Репутация: нет
Всего: 16



Слушайте, ну прекратите ужэ разбирать XML регуляркой.

Сколько людей ужэ писали: не делайте так, нормальный разбор XML регулярной грамматикой невозможэн.
Я, конечно, иногда возражаю, что нормальный -- невозможэн, а достаточный -- ну почему бы и нет.

Но у Вас вот неполучилось. Зачем, зачем дальшэ мучить этот дохлый вариант?

(нет, перевести оригинальное выражэние в одно я не смог -- поскольку оракл у меня не стоит, а из документацыи непонятно, матчит ли [^ ] перевод строки или нет. Но всё равно там ужас символов на 400).

PS И да, разумеется, все попытки распарзить XML регуляркой безсмысленны без очень чёткого описания допустимого XML. Очень чёткого. XSD -- недостаточно.
PPS  добавить условие чтоб удалялся символ / , но не удалялся />.
Код

([^" .=:;?</>0-9A-Za-z][^>]|[^" .=:;?</>0-9A-Za-z]$)

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Oracle"
Zloxa
LSD

Данный раздел предназначен для обсуждения проблем с Oracle Database, другие продукты Oracle здесь не обсуждаются. Просьба при создании темы, придерживаться следующих правил:

  • при создании темы давайте ей осмысленное название, описывающее суть проблемы
  • указывайте используемую версию базы, способ соединения и язык программирования
  • при ошибках обязательно приводите код ошибки и сообщение сервера
  • приводите код в котором возникла ошибка, по возможности дайте тестовый пример демонстрирующий ошибку
  • при вставке кода используйте соответсвующие теги: [code=sql] [/code] для подсветки SQL и PL/SQL кода, [code=java] [/code] - для Java, и т.д.

  • документация по Oracle: 9i, 10g, 11g
  • книги по Oracle можно поискать здесь
  • действия модераторов можно обсудить здесь

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Zloxa, LSD.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Oracle | Следующая тема »


 




[ Время генерации скрипта: 0.1172 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.