powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Oracle [игнор отключен] [закрыт для гостей] / regexp_like - всё, кроме букв и определенных символов
14 сообщений из 14, страница 1 из 1
regexp_like - всё, кроме букв и определенных символов
    #39813061
feagor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Задача - вырезать из строки все символы, кроме разрешенных
разрешенные - A-z, А-я, 0-9, пробелы, запятые, а также пул символов ./\-+()*_@№$!&
Проблема возникает как минимум с символом "+", так как он не хочет экранироваться

Код: plsql
1.
select regexp_replace('буквы - абВГдAbCd, цифры - 12340, разреш.символы - $!&\/-+(),*_@№, запрещ - <>[]{}=','[^[:alnum:][:blank:]-$@№!&]','') from dual


как только начинаю добавлять управляющие символы - начинается ерунда, прошу помочь
...
Рейтинг: 0 / 0
regexp_like - всё, кроме букв и определенных символов
    #39813065
Фотография Stax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
feagor,

translate не подходит?

.....
stax
...
Рейтинг: 0 / 0
regexp_like - всё, кроме букв и определенных символов
    #39813068
Фотография andrey_anonymous
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plsql
1.
2.
3.
with t as (select 'абвгд12345Ё!"№;%:?*()_-+[]{};:"' s from dual)
select translate(s,chr(0)||translate(s,chr(0)||'аг1+-',chr(0)), chr(0))
from t;
...
Рейтинг: 0 / 0
regexp_like - всё, кроме букв и определенных символов
    #39813069
Dshedoo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plsql
1.
2.
select regexp_replace('буквы - абВГдAbCd, цифры - 12340, разреш.символы - $!&\/-+(),*_@№, запрещ - <>[]{}=','[^[:alnum:][:blank:](),_.*\/+$@№!&-]','')
 from dual



"-" в конец перекинь, чтобы регулярка не пыталась выбрать диапазон от [:blank:] до $.
...
Рейтинг: 0 / 0
regexp_like - всё, кроме букв и определенных символов
    #39813082
Фотография Stax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
feagor,

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
  1  select regexp_replace(
  2  'буквы - абВГдAbCd, цифры - 12340, разреш.символы - $!&\/-+(),*_@№, запрещ - <>[]{}='
  3* ,'[^[:alnum:][:blank:]-$@№!&///\/+/(/)/,/*/.]','') from dual
SQL> /

REGEXP_REPLACE('БУКВЫ-АБВГДABCD,ЦИФРЫ-12340,РАЗРЕШ.СИМВОЛЫ-$!&\/-+(),*_@№,З
---------------------------------------------------------------------------
буквы - абВГдAbCd, цифры - 12340, разреш.символы - $!&\/-+(),*@№, запрещ -



....
stax
...
Рейтинг: 0 / 0
regexp_like - всё, кроме букв и определенных символов
    #39813093
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Stax
Код: plsql
1.
'[^[:alnum:][:blank:]-$@№!&///\/+/(/)/,/*/.]'

Перебор вследствие незнания. В данном конкретном случае - безвредный.
...
Рейтинг: 0 / 0
regexp_like - всё, кроме букв и определенных символов
    #39813096
Фотография Stax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ElicStax
Код: plsql
1.
'[^[:alnum:][:blank:]-$@№!&///\/+/(/)/,/*/.]'

Перебор вследствие незнания. В данном конкретном случае - безвредный.
вроде работает,
или на чем-то слетит?

.....
stax
...
Рейтинг: 0 / 0
regexp_like - всё, кроме букв и определенных символов
    #39813103
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Staxвроде работает,RTFM In the list, all operators except these are treated as literals:
...
Рейтинг: 0 / 0
regexp_like - всё, кроме букв и определенных символов
    #39813119
Фотография Stax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andrey_anonymous
Код: plsql
1.
2.
3.
with t as (select 'абвгд12345Ё!"№;%:?*()_-+[]{};:"' s from dual)
select translate(s,chr(0)||translate(s,chr(0)||'аг1+-',chr(0)), chr(0))
from t;


не проще просто перчислить запрещенное?

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
  1  select translate('буквы - абВГдAbCd, цифры - 12340, разреш.символы - $!&\/-+(),*_@№, запрещ - <>[]{}='
  2                  ,'@<>[]{}=','@') r
  3* from dual
SQL> /

R
----------------------------------------------------------------------------
буквы - абВГдAbCd, цифры - 12340, разреш.символы - $!&\/-+(),*_@№, запрещ -

SQL>



ps
тормознул в 21884560 Смешались в кучу кони, люди. И косые / \ )

....
stax
...
Рейтинг: 0 / 0
regexp_like - всё, кроме букв и определенных символов
    #39813129
feagor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Stax,

нет, нужно вырезать всё кроме указанных, я лишь для примера несколько запрещенных показал, нужно работать именно по исключению всех, кроме разрешенных
...
Рейтинг: 0 / 0
regexp_like - всё, кроме букв и определенных символов
    #39813131
Фотография Stax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
feagor,

понял, нет списка запрещенных

....
stax
...
Рейтинг: 0 / 0
regexp_like - всё, кроме букв и определенных символов
    #39813138
feagor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Elic,

спс
...
Рейтинг: 0 / 0
regexp_like - всё, кроме букв и определенных символов
    #39813144
feagor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: plsql
1.
2.
3.
select regexp_replace('буквы - абВГдAbCd, цифры - 12340, разреш.символы - $!&\/-+()*_@№, запрещ - &#65533;<>[]{}=',
'[^a-zA-Zа-яА-Я0-9 .,$!&\/+()*_@№-]',
'') from dual;


Вроде нормально работает
Спасибо всем.
символ "-" должен был быть в конце
...
Рейтинг: 0 / 0
regexp_like - всё, кроме букв и определенных символов
    #39813309
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
feagorсимвол "-" должен был быть в концеТвоё "sps" мимо кассы, раз ты ни черта не понял.
...
Рейтинг: 0 / 0
14 сообщений из 14, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / regexp_like - всё, кроме букв и определенных символов
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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