powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Вопрос по преобразованию строки (через регулярные выражения)
8 сообщений из 8, страница 1 из 1
Вопрос по преобразованию строки (через регулярные выражения)
    #39902485
LFDY
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день!!
Уважаемые Гуру, подскажите, пожалуйста..
Есть одна задача по преобразованию строки...

В требованиях имеется:
1. В случае, если значение параметра содержит одинарные кавычки, они должны быть исключены из строки

'МАМА'ПАПА'ВАС'Я -> МАМАПАПАВАСЯ

2. Строка не должна начинаться с символов @, &, %, +

%МАМА+ПАПА -> МАМА+ПАПА
&&&@МАМА@ПАПА -> МАМА@ПАПА
&+МА%М%А@ПАПА ->МА%М%А@ПАПА


3. При наличие в значении параметра двойных кавычек ("), этот символ должен быть заменен на символ (*)

"МАМА""ПАПА" -> *МАМА**ПАПА*


Можно данное требование выполнить с помощью регулярного выражения???

Пока додумался только до ( заменяет все "неправильные" символы на пробелы)


Код: plsql
1.
2.
3.
4.
with d as (select '@@''@@%%%%###@@@#wwew""""ewew#'  as VALUE from dual)

select 
value,REGEXP_REPLACE (value,'\&|@|''|"|%|\+',' ')  as new_value from d
...
Рейтинг: 0 / 0
Вопрос по преобразованию строки (через регулярные выражения)
    #39902488
Фотография -2-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LFDY
В требованиях имеется
В отсутствие обоснованной компетенциями фантазии следует следовать последовательности действий, указанных в инструкции.
...
Рейтинг: 0 / 0
Вопрос по преобразованию строки (через регулярные выражения)
    #39902503
Dshedoo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plsql
1.
2.
select replace( regexp_replace( replace( строка, требование№1), требование№2), требование№3)
from table
...
Рейтинг: 0 / 0
Вопрос по преобразованию строки (через регулярные выражения)
    #39902510
Фотография orawish
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LFDY,

регулярного тут ничего не надо
для п 2) годится ltrim, а для прочего translate или пара replase-ов
...
Рейтинг: 0 / 0
Вопрос по преобразованию строки (через регулярные выражения)
    #39902579
LFDY
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Сделал так
Код: plsql
1.
2.
3.
4.
5.
6.
with d as (select '%%++&&&&MAMA""""""""""%' || 'PAPA''''''''' || 'BROTHER_%@+""""""'  
            as VALUE from dual)
select 
value
,LTRIM(replace(replace(value,'"','*'),'''',''),'@|\&|%|\+')  as new_value
from d




Возвращает

MAMA**********%PAPABROTHER_%@+******

Правильно???
Как с это делать с TRANSLATE - Никак не пойму....;-((
...
Рейтинг: 0 / 0
Вопрос по преобразованию строки (через регулярные выражения)
    #39902627
LFDY
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Кажется нашел
Код: plsql
1.
2.
3.
4.
5.
6.
7.
with d as (select '%%++&&&&MAMA""""""""""%' || 'PAPA''''''''' || 'BROTHER_%@+""""""'  
            as VALUE from dual)
select 
value
,LTRIM(translate(value,'"''','*'),'@|\&|%|\+')  as new_value

from d
...
Рейтинг: 0 / 0
Вопрос по преобразованию строки (через регулярные выражения)
    #39902730
Фотография orawish
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
у ltrim во втором параметре палок лишних много
достаточно
Код: plsql
1.
LTRIM(value,'@&%+')
...
Рейтинг: 0 / 0
Вопрос по преобразованию строки (через регулярные выражения)
    #39903178
LFDY
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
orawish,

Код: plsql
1.
LTRIM(replace(replace(value,'"','*'),'''',''),'@&%+')


Вот это уже "Красиво" ;-))
Большое спасибо!!!!!
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Вопрос по преобразованию строки (через регулярные выражения)
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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