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

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


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

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

.....
stax
...
Рейтинг: 0 / 0
14.05.2019, 15:21
    #39813068
andrey_anonymous
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
regexp_like - всё, кроме букв и определенных символов
Код: 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
14.05.2019, 15:23
    #39813069
Dshedoo
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
regexp_like - всё, кроме букв и определенных символов
Код: plsql
1.
2.
select regexp_replace('буквы - абВГдAbCd, цифры - 12340, разреш.символы - $!&\/-+(),*_@№, запрещ - <>[]{}=','[^[:alnum:][:blank:](),_.*\/+$@№!&-]','')
 from dual



"-" в конец перекинь, чтобы регулярка не пыталась выбрать диапазон от [:blank:] до $.
...
Рейтинг: 0 / 0
14.05.2019, 15:31
    #39813082
Stax
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
regexp_like - всё, кроме букв и определенных символов
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
14.05.2019, 15:41
    #39813093
Elic
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
regexp_like - всё, кроме букв и определенных символов
Stax
Код: plsql
1.
'[^[:alnum:][:blank:]-$@№!&///\/+/(/)/,/*/.]'

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

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

.....
stax
...
Рейтинг: 0 / 0
14.05.2019, 16:01
    #39813103
Elic
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
regexp_like - всё, кроме букв и определенных символов
Staxвроде работает,RTFM In the list, all operators except these are treated as literals:
...
Рейтинг: 0 / 0
14.05.2019, 16:37
    #39813119
Stax
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
regexp_like - всё, кроме букв и определенных символов
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
14.05.2019, 17:05
    #39813129
feagor
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
regexp_like - всё, кроме букв и определенных символов
Stax,

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

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

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

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


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


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