powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / regexp_like
44 сообщений из 44, показаны все 2 страниц
regexp_like
    #39685362
Swsov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Как можно выбрать строки, которые не начинаются с "ns".
Следующая версия не работает
regexp_like (text, '^[^(ns)]')
...
Рейтинг: 0 / 0
regexp_like
    #39685368
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
regexp_like
    #39685370
123йй
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Swso,
Код: plsql
1.
2.
3.
4.
5.
select * from (
select 'nsll' str from dual 
union
select 'kkns' from dual ) where 
instr(str,'ns')>1
...
Рейтинг: 0 / 0
regexp_like
    #39685375
Фотография Stax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
123йй,

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
SQL> ed
Wrote file afiedt.buf

  1  select * from (
  2  select 'nsll' str from dual
  3  union
  4  select 'kkns' from dual
  5  union
  6  select 'Ой!' from dual
  7  ) where
  8* instr(str,'ns')>1
SQL> /

STR
----
kkns



....
stax
...
Рейтинг: 0 / 0
regexp_like
    #39685376
123йй
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Stax,

для тебя на блюдечке с золотой коемочкой instr(str,'ns')!=1
...
Рейтинг: 0 / 0
regexp_like
    #39685378
123йй
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Stax,
null учесть сможешь ?
...
Рейтинг: 0 / 0
regexp_like
    #39685380
Swsov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Удивительно, столько ответов и все не в тему )
Спрошу еще раз, сторонний пакет принимает на вход регулярные выражения и данное условие идет в числе многих.
...
Рейтинг: 0 / 0
regexp_like
    #39685388
Фотография Stax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SwsovУдивительно, столько ответов и все не в тему )
Спрошу еще раз, сторонний пакет принимает на вход регулярные выражения и данное условие идет в числе многих.

NOT regexp_like не принимает?

.....
stax
...
Рейтинг: 0 / 0
regexp_like
    #39685414
Swsov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Stax,
Нет, regexp_like в сторонней процедуре.
Все, что можно менять это выражение
...
Рейтинг: 0 / 0
regexp_like
    #39685418
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Swsovсторонний пакет принимает на вход регулярные выраженияДарю регулярку: начинается не с n или начинается с n, а продолжается не с s.
...
Рейтинг: 0 / 0
regexp_like
    #39685419
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SwsovНет, regexp_like в сторонней процедуре.
Все, что можно менять это выражение http://www.bugtraq.ru/forum/faq/general/smart-questions.html] RTFM
...
Рейтинг: 0 / 0
regexp_like
    #39685424
Swsov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Elic,

Да обойти не проблема, мне интересно почему в данном случае oracle не считает (ns) целым выражением
...
Рейтинг: 0 / 0
regexp_like
    #39685431
Фотография Stax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SwsovStax,
Нет, regexp_like в сторонней процедуре.
Все, что можно менять это выражение

знал метод через гланды, но Вам тож наверное не подойдет

строку заменить на один символ, аля regexp_like(replace(nvl(str,'*'), 'ns', '#'), '^[^#]')

...
stax
...
Рейтинг: 0 / 0
regexp_like
    #39685437
feagor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Stax,
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
select * from (
 select 'nsll' str from dual
 union
 select 'kkns' from dual
 union
 select 'Ой!' from dual
 ) where
regexp_like(str,'^[^(?:ns)]')
...
Рейтинг: 0 / 0
regexp_like
    #39685448
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Swsovмне интересно почему в данном случае oracle не считает (ns) целым выражениемRTFM POSIX Operators in Oracle SQL Regular Expressions: (Non)Matching Character List (FAQ) : "In the list, all operators except these are treated as literals:…"
...
Рейтинг: 0 / 0
regexp_like
    #39685452
Фотография Stax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
feagor,

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
SQL> ed
Wrote file afiedt.buf

  1  select * from (
  2   select 'nskk' str from dual
  3   union
  4   select ':nskk?' str from dual
  5   union
  6   select 'naskk?' str from dual
  7   union
  8   select 'kkns' from dual
  9   union
 10   select 'Ой!' from dual
 11   union
 12   select '' from dual
 13   ) where
 14* regexp_like(str,'^[^(?:ns)]')
SQL> /

STR
------
kkns
Ой!



.....
stax
...
Рейтинг: 0 / 0
regexp_like
    #39685457
IMNO
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
WITH 
  TMain AS(SELECT 'nsaaa' as str
           FROM DUAL
           UNION ALL
           SELECT 'ns123'
           FROM DUAL
           UNION ALL
           SELECT 'aaans'
           FROM DUAL
           UNION ALL
           SELECT '123ns'
           FROM DUAL
           UNION ALL
           SELECT 'ans'
           FROM DUAL
           UNION ALL
           SELECT '1ns'
           FROM DUAL
           UNION ALL
           SELECT 'n1s'
           FROM DUAL)
SELECT *
FROM TMain
WHERE regexp_like(str, '^([^n])|([n][^s])')
...
Рейтинг: 0 / 0
regexp_like
    #39685460
Фотография env
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
feagor,

Код: plsql
1.
2.
 union all
 select 'sn' from dual
...
Рейтинг: 0 / 0
regexp_like
    #39685461
Swsov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Elic,

Однако там все-таки не описано, что в данном случае не будут работать описанные там же subexpression
...
Рейтинг: 0 / 0
regexp_like
    #39685468
Фотография Stax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
IMNO,

для двух символов фигня (Елик описал),
а вот для строки напр не начінается на select


.....
stax
...
Рейтинг: 0 / 0
regexp_like
    #39685469
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SwsovОднако там все-таки не описано, что в данном случае не будут работать описанные там же subexpressionРазуй глаза.
...
Рейтинг: 0 / 0
regexp_like
    #39685471
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
IMNO
Код: plsql
1.
'^([^n])|([n][^s])'

Ты не полностью перевёл регулярку.
Код: plsql
1.
'nsgggggng'

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

select * from (
select 'nskk' str from dual
union
select ':nskk?' str from dual
union
select 'naskk?' str from dual
union
select 'kkns' from dual
union
select 'Ой!' from dual
) where
regexp_like(str,'^((n[^s])|([^n]))')
...
Рейтинг: 0 / 0
regexp_like
    #39685490
feagor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
stax,
продолжаю верить, что когда нибудь можно будет так ^(?!ns)
...
Рейтинг: 0 / 0
regexp_like
    #39685491
Фотография AmKad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plsql
1.
not like 'ns%'

еще никто не предлагал?
...
Рейтинг: 0 / 0
regexp_like
    #39685493
Фотография env
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
feagor,

Код: plsql
1.
2.
union all
select 'n' from dual
...
Рейтинг: 0 / 0
regexp_like
    #39685495
feagor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
AmKad,

сторонний пакет принимает на вход регулярные выражения и данное условие идет в числе многих.
...
Рейтинг: 0 / 0
regexp_like
    #39685496
Фотография env
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AmKad,
Swsovсторонний пакет принимает на вход регулярные выражения и данное условие идет в числе многих.
...
Рейтинг: 0 / 0
regexp_like
    #39685498
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
feagor
Код: plsql
1.
'^((n[^s])|([^n]))'

Лучше, но всё равно недостаточно.
Код: plsql
1.
'n'

...
Рейтинг: 0 / 0
regexp_like
    #39685500
feagor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
env,

|(n)$
...
Рейтинг: 0 / 0
regexp_like
    #39685507
IMNO
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
IMNO
Код: plsql
1.
'^([^n])|([n][^s])'



Код: plsql
1.
regexp_like(str, '(^[^n])|(^[n][^s]).+$')



StaxIMNO,

для двух символов фигня (Елик описал),
а вот для строки напр не начінается на select


.....
stax

Ну с двумя символами и правда не сильно сложно, хотя пришлось подумать.
Но вот как выкинуть целое слово?
Что-то вообще идей нет. Надо как-то дать понять ораклу, чтобы он воспринимал не список символов, а слово целиком.
Мда...вот задачка то
...
Рейтинг: 0 / 0
regexp_like
    #39685510
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
IMNOНо вот как выкинуть целое слово?Многкратным многоступенчатым или.
IMNOНадо как-то дать понять ораклу, чтобы он воспринимал не список символов, а слово целиком.Ты тоже почитай rtfm.
...
Рейтинг: 0 / 0
regexp_like
    #39685513
ORA-madman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
 select * from (
    select 'nskk' str from dual
    union
    select ':nskk?' str from dual
    union
    select 'naskk?' str from dual
    union
    select 'kkns' from dual
    union
    select 'Ой!' from dual
    union
    select '' from dual
    ) where not regexp_like(str,'^ns')
...
Рейтинг: 0 / 0
regexp_like
    #39685515
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ORA-madman
Код: plsql
1.
not regexp_like

Ты не читал тему.
...
Рейтинг: 0 / 0
regexp_like
    #39685516
ORA-madman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ибо все, что идет в
Код: plsql
1.
[...]

это подмножество.
...
Рейтинг: 0 / 0
regexp_like
    #39685517
ORA-madman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Понял.
...
Рейтинг: 0 / 0
regexp_like
    #39685518
IMNO
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ElicМногкратным многоступенчатым или.
В таком случае получится страшная регулярка.
Хотя бы взять тот же "select". Казалось бы, что с "ns" задача простая, но регулярка неплохая получилась.
На длинные слова вообще же ужас будет.
А если нужно выкидывать несколько слов?
Тогда уже проще через обычные INSTR() и SUBSTR() делать, хотя регулярки считаются мощнее обычных функций, вроде как.
...
Рейтинг: 0 / 0
regexp_like
    #39685521
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
IMNOНа длинные слова вообще же ужас будет.Не будет. Упрётся в 512 байт.
IMNOА если нужно выкидывать несколько слов?Смотри самый первый ответ.
...
Рейтинг: 0 / 0
regexp_like
    #39686086
IMNO
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ElicНе будет. Упрётся в 512 байт.
Не хочу создавать новую тему.

Вопрос.
Можно обойти ограничения в 512 байт?
Появилась реальная необходимость. Можно либо написать витиеватую логику в 100-150 строк, или превысить ограничение 512 байт.
Думаю в сторону CLOB. Вроде бы у Oracle есть какая-то особая обработка типа CLOB регулярками.
...
Рейтинг: 0 / 0
regexp_like
    #39686114
Фотография SY
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
IMNOМожно обойти ограничения в 512 байт?
Появилась реальная необходимость. Можно либо написать витиеватую логику в 100-150 строк, или превысить ограничение 512 байт.
Думаю в сторону CLOB. Вроде бы у Oracle есть какая-то особая обработка типа CLOB регулярками.

регулярка прекрасно обрабатывает CLOB, 512 - это ограничение шаблона а не обрабатываемой строки.

SY.
...
Рейтинг: 0 / 0
regexp_like
    #39686125
Фотография andrey_anonymous
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
IMNOНе хочу создавать новую тему.
Jamie ZawinskiSome people, when confronted with a problem, think "I know, I'll use regular expressions." Now they have two problems.
...
Рейтинг: 0 / 0
regexp_like
    #39686550
feagor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
IMNO,

Может все таки включить мозг и вместо каких-то извращений подумать над нормальным решений?
...
Рейтинг: 0 / 0
regexp_like
    #39688836
MirnyiAtom
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
regexp_like(str,'^[^n][^s]')
...
Рейтинг: 0 / 0
regexp_like
    #39688842
merch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Swsov Как можно выбрать строки, которые не начинаются с "ns".


MirnyiAtomregexp_like(str,'^[^n][^s]')


Код: plsql
1.
2.
3.
4.
5.
6.
with t1(str) as
(
select 'sskuka' from dual
)
select * from t1
where regexp_like(str,'^[^n][^s]');
...
Рейтинг: 0 / 0
44 сообщений из 44, показаны все 2 страниц
Форумы / Oracle [игнор отключен] [закрыт для гостей] / regexp_like
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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