Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Регулярные выражения / 25 сообщений из 32, страница 1 из 2
11.09.2018, 11:10
    #39700807
Pol.ka
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Регулярные выражения
Не получается найти слово которое ограничено чем угодно повторяется два раза и находится в разных предложениях , получается что-то вроде этого но не работает


SELECT * FROM text
where regexp_like( text, (^|\s*([A-Za-z]+|[A-Za-z]+-|[A-Za-z]+-[A-Za-z])+)([.\s,;:!?])\1);



bad girls, bad boys,bad phone. phone phone mam: phone phone?
wup, wup, BORAK OBAMA OBAMA MAMA; it is OBAMA .
hustone, we have a problem, big problem. Very big, big, big
high cost - high perfomance, high
full-hd,tv-full,full-hd:full-hd
...
Рейтинг: 0 / 0
11.09.2018, 13:04
    #39700886
andrey odegov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Регулярные выражения
Так?
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
with
  t as (
    select 'bad girls, bad boys,bad phone. phone phone mam: phone phone?' s
    from dual union all
    select 'wup, wup, BORAK OBAMA OBAMA MAMA; it is OBAMA .'
    from dual union all
    select 'hustone, we have a problem, big problem. Very big, big, big'
    from dual union all
    select 'high cost - high perfomance, high'
    from dual union all
    select 'full-hd,tv-full,full-hd:full-hd'
    from dual
  )
select *
from t
where regexp_like(
        s, '(^|[^a-z])([a-z]{2,})[^.]*\.(.*[^a-z])?\2([^a-z]|$)', 'i'
      );


Sbad girls, bad boys,bad phone. phone phone mam: phone phone?hustone, we have a problem, big problem. Very big, big, big
...
Рейтинг: 0 / 0
11.09.2018, 13:12
    #39700891
Elic
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Регулярные выражения
Код: 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.
25.
26.
27.
28.
29.
SQL> with t as (select
  2  'bad girls, bad boys,bad phone. phone phone mam: phone phone?
  3  wup, wup, BORAK OBAMA OBAMA MAMA; it is OBAMA .
  4  hustone, we have a problem, big problem. Very big, big, big
  5  high cost - high perfomance, high
  6  full-hd,tv-full,full-hd:full-hd' as s from dual
  7  )
  8  select regexp_substr
  9         ( regexp_replace(s,      '(^|$|[[:space:],;:.!?])', ' \1 ')
 10         , '( ([[:alpha:]]+(-[[:alpha:]]+)?) ).*?[,;:.!?].*?\1'
 11         , 1
 12         , i
 13         , 'n'
 14         , 2
 15         ) as word
 16    from t, (select level as i from dual connect by level <= 11)
 17  ;

WORD
------------------------------------------------------------------------
bad
phone
phone
wup
OBAMA
problem
big
high
full-hd
...
Рейтинг: 0 / 0
11.09.2018, 13:13
    #39700892
Pol.ka
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Регулярные выражения
andrey odegov,

Нет немного не так , надо что бы выводилось строка в которой слово повторяется больще двух раз в пределе одного предложения.
...
Рейтинг: 0 / 0
11.09.2018, 13:30
    #39700905
andrey odegov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Регулярные выражения
А так?
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
with
  t as (
    select 'bad girls, bad boys,bad phone. phone phone mam: phone phone?' s from dual
    union all
    select 'wup, wup, BORAK OBAMA OBAMA MAMA; it is OBAMA .' from dual
    union all
    select 'hustone, we have a problem, big problem. Very big, big, big' from dual
    union all
    select 'hustone, we have a problem, big problem. Very big, bi...' from dual
    union all
    select 'high cost - high perfomance, high' from dual
    union all
    select 'full-hd,tv-full,full-hd:full-hd' from dual
  )
select *
from t
where regexp_like(
        s, '(^|[^a-z])([a-z]{2,})[^.]*\.((.*[^a-z])?\2([^a-z]|$)){2,}', 'i'
      )
...
Рейтинг: 0 / 0
11.09.2018, 13:43
    #39700912
Pol.ka
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Регулярные выражения
andrey odegov,

Нет , Смысл в том , что бы вывести строки где одно слово повторяется больше двух раз в одном предложении , при чём слово может быть с тире , типо Мама и мама- два разных слова
Надо огранить слово и найти по шаблону
...
Рейтинг: 0 / 0
11.09.2018, 13:49
    #39700916
andrey odegov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Регулярные выражения
А это про что тогда?Pol.kaНе получается найти слово которое ограничено чем угодно повторяется два раза и находится в разных предложениях
, получается что-то вроде этого но не работает


SELECT * FROM text
where regexp_like( text, (^|\s*([A-Za-z]+|[A-Za-z]+-|[A-Za-z]+-[A-Za-z])+)([.\s,;:!?])\1);



bad girls, bad boys,bad phone. phone phone mam: phone phone?
wup, wup, BORAK OBAMA OBAMA MAMA; it is OBAMA .
hustone, we have a problem, big problem. Very big, big, big
high cost - high perfomance, high
full-hd,tv-full,full-hd:full-hd
Приведите пример того, что хотите получить на выходе.
...
Рейтинг: 0 / 0
11.09.2018, 14:36
    #39700936
Pol.ka
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Регулярные выражения
andrey odegov,

Это то же самое
...
Рейтинг: 0 / 0
11.09.2018, 14:39
    #39700938
Pol.ka
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Регулярные выражения
andrey odegov,
Например

1 Мама мама мама , мама- мама-
2 мимо мима мими , мимо-мимо , мимо-мимо.
3 Назад вперёд вверх вниз. Вверх вниз
4 Семь восемь. Семь семь

Что бы выводились только 1 2 4 строки
...
Рейтинг: 0 / 0
11.09.2018, 15:02
    #39700949
andrey odegov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Регулярные выражения
Последняя попытка и сдаюсь :)
Код: 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
  t as (
    select 'bad girls, bad boys,bad phone. phone phone mam: phone phone? ' s from dual
    union all
    select 'wup, wup, BORAK OBAMA OBAMA MAMA; it is OBAMA . ' from dual
    union all
    select 'hustone, we have a problem, big problem. Very big, big, big' from dual
    union all
    select 'high cost - high perfomance, high ' from dual
    union all
    select 'full-hd,tv-full,full-hd:full-hd' from dual
    union all
    select 'В лесу родилась елочка. В лесу,лесу-лесу,лесу она росла. В лесу, лесу' from dual
    union all
    select 'В лесу родилась елочка. В лесу,лесу она росла' from dual
  )
select *
from t
where regexp_like(s,
                  q'~(^|[^[:alpha:]-])
                     ([[:alpha:]]([[:alpha:]]*-)?[[:alpha:]]+)
                     [,.;:?![[:space:]]\2
                     ([^[:alpha:]-]|$)~',
                  'x');


Sbad girls, bad boys,bad phone. phone phone mam: phone phone?wup, wup, BORAK OBAMA OBAMA MAMA; it is OBAMA .full-hd,tv-full,full-hd:full-hdВ лесу родилась елочка. В лесу,лесу она росла
PS: О q'~...~' можно почитать здесь .
...
Рейтинг: 0 / 0
11.09.2018, 15:04
    #39700951
Elic
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Регулярные выражения
Pol.kaнайти словоPol.kaвывести строки http://www.bugtraq.ru/forum/faq/general/smart-questions.html] RTFM
...
Рейтинг: 0 / 0
11.09.2018, 15:12
    #39700955
andrey odegov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Регулярные выражения
Та была предпоследняя
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
with
  t as (
    select '1 Мама мама мама , мама- мама- ' s from dual
    union all
    select '2 мимо мима мими , мимо-мимо , мимо-мимо.' from dual
    union all
    select '3 Назад вперёд вверх вниз. Вверх вниз' from dual
    union all
    select '4 Семь восемь. Семь семь' from dual
  )
select *
from t
where regexp_like(s,
                  q'~(^|[^[:alpha:]-])
                     ([[:alpha:]]([[:alpha:]]*-)?[[:alpha:]]+)
                     [,.;:?![[:space:]]+\2
                     ([^[:alpha:]-]|$)~',
                  'ix');


S1 Мама мама мама , мама- мама- 2 мимо мима мими , мимо-мимо , мимо-мимо.4 Семь восемь. Семь семь
...
Рейтинг: 0 / 0
11.09.2018, 15:32
    #39700964
Pol.ka
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Регулярные выражения
andrey odegov,

Боюсь опять не то
...
Рейтинг: 0 / 0
11.09.2018, 15:47
    #39700973
andrey odegov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Регулярные выражения
Ну, тогда ловите золотую рыбку сами.
...
Рейтинг: 0 / 0
11.09.2018, 15:56
    #39700975
Elic
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Регулярные выражения
Pol.kaБоюсь Глаза разул?
...
Рейтинг: 0 / 0
11.09.2018, 21:31
    #39701141
Pol.ka
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Регулярные выражения
Elic,

В шаблоне мы ищем это слово , а выводятся именно строки
...
Рейтинг: 0 / 0
11.09.2018, 23:43
    #39701168
andrey odegov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Регулярные выражения
Вам ваше регулярное выражение надо потестировать.
Можно здесь .
...
Рейтинг: 0 / 0
12.09.2018, 07:34
    #39701213
Elic
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Регулярные выражения
Pol.kaElic,

В шаблоне мы ищем это слово , а выводятся именно строкиРаз ты не способен сперва внятно сформулировать вопрос, а потом воспользоваться предложенной удочкой,
то мозгов у тебя маловато.
...
Рейтинг: 0 / 0
12.09.2018, 11:00
    #39701325
Pol.ka
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Регулярные выражения
Elic, Я конечно прошу прощение за невнятную формулировку и крайне благодарен за критику , я как раз тестирую на этом сайте но работает не так как надо
...
Рейтинг: 0 / 0
12.09.2018, 11:11
    #39701332
Pol.ka
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Регулярные выражения
andrey odegov,
Спасибо , я как раз пользуюсь этим сайтом , но пока безрезультатно
...
Рейтинг: 0 / 0
12.09.2018, 11:31
    #39701342
Pol.ka
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Регулярные выражения
Pol.ka,

Попробую всё же перебороть свою проблему и сформулировать нормально.
Есть строки в которых содержится текст , надо вывести те строки в тексте которых есть слово повторяющееся 2 и более раз в пределе одного предложения по правилам русской пунктуации , при чём
слова пять , пять- , -пять , пять-пять , все разные. Шаблоном я пытался как раз найти это слово и произвести поиск по нему.
...
Рейтинг: 0 / 0
12.09.2018, 11:33
    #39701343
Pol.ka
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Регулярные выражения
Pol.ka,

И пользоваться можно только regex_like
...
Рейтинг: 0 / 0
12.09.2018, 11:37
    #39701350
Pol.ka
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Регулярные выражения
andrey odegov,
Спасибо , я как раз пользуюсь этим сайтом , но пока безрезультатно
...
Рейтинг: 0 / 0
13.09.2018, 13:32
    #39702081
Pol.ka
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Регулярные выражения
andrey odegov,

Надеюсь вы ещё тут , все это время у меня было неточная формулировка , слово должно повторятся строго больше 2 раз
...
Рейтинг: 0 / 0
13.09.2018, 16:17
    #39702214
andrey odegov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Регулярные выражения
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
with
  t as (
    select '1 Мама мама мама , мама- мама- ' s from dual
    union all
    select '2 мимо мима мими , мимо-мимо , мимо-мимо.' from dual
    union all
    select '3 Назад вперёд вверх вниз. Вверх вниз' from dual
    union all
    select '4 Семь восемь. Семь семь' from dual
  )
select *
from t
where regexp_like(s,
                  q'~([^[:alpha:]-]|^)
                     (
                       [[:alpha:]]{2,}(-[[:alpha:]]{2,})?|
                       -[[:alpha:]]{2,}|
                       [[:alpha:]]{2,}-
                     )
                     [^[:alpha:]-]
                     ((.*?[^[:alpha:]-])?\2([^[:alpha:]-]|$)){2}~',
                  'ix');


S1 Мама мама мама , мама- мама- 4 Семь восемь. Семь семь
Запрос можно потестировать здесь , а регулярное выражение - здесь .
...
Рейтинг: 0 / 0
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Регулярные выражения / 25 сообщений из 32, страница 1 из 2
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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