powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / REGEXP парсинг EMAIL и URL
8 сообщений из 8, страница 1 из 1
REGEXP парсинг EMAIL и URL
    #39274416
Adtain
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ребят, помогите с парсингом, необходимо из произвольной строки получать валидные e-mail и web-url'ы.

В моем скрипте сейчас пролезает лишняя строка " Alexander.Kochnev ", считается как url

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
declare
  p_value varchar2(200) := 'Alexander.Kochnev@yandex.com, Alexander.Kochnev http://privet.ru/ mail.ru gov.cont.ru';

  p_mail varchar2(100) := '[A-Z0-9._%-]+@[A-Z0-9._%-]+\.[A-Z]{2,6}';
  p_url  varchar2(100) := '((https?|ftp)://)?(www\.)?([a-z0-9_-]+\.)+[a-z]{2,6}(/[a-z0-9_-]+)*';
begin
  for cur in (select regexp_substr(n'' || p_value, '(' || p_mail || '|' || p_url || ')+', 1, level, 'i') web_value
                from dual
               where regexp_substr(n'' || p_value, '(' || p_mail || '|' || p_url || ')+', 1, level, 'i') is not null
              connect by regexp_substr(n'' || p_value, '(' || p_mail || '|' || p_url || ')+', 1, level, 'i') is not null)
  loop
    dbms_output.put_line(cur.web_value);
  end loop;
end;
...
Рейтинг: 0 / 0
REGEXP парсинг EMAIL и URL
    #39274434
123йй
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Adtain,
а с чего ты решил что
авторmail.ru gov.cont.ru
считается как url ?
...
Рейтинг: 0 / 0
REGEXP парсинг EMAIL и URL
    #39274436
Adtain
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
123йй,

Я их пропускаю, т.к. работаю с данными операторов, к сожалению, они могут такой адрес написать.
Прост хочу отсечь явные ошибки, которые при вводе в браузер не сработают
...
Рейтинг: 0 / 0
REGEXP парсинг EMAIL и URL
    #39274499
Adtain
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мне нужно заставить работать этот кусок [a-z]{2,6} , чтоб он отсекал, а не приглаживал из-за использования substr'а
...
Рейтинг: 0 / 0
REGEXP парсинг EMAIL и URL
    #39274786
Adtain
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В Oracle не работают якоря \b ?
Код: plsql
1.
'((https?|ftp):\/\/)?(www\.)?([a-z0-9-]+\.)+\b[a-z]{2,4}\b(\/[a-z0-9-]*)*'
...
Рейтинг: 0 / 0
REGEXP парсинг EMAIL и URL
    #39274789
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AdtainВ Oracle не работают якоря \b ?RTFM Perl-influenced Extensions in Oracle Regular Expressions (FAQ)
...
Рейтинг: 0 / 0
REGEXP парсинг EMAIL и URL
    #39274793
Adtain
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Elic,

Т.е. границы слова нету, жаль.
...
Рейтинг: 0 / 0
REGEXP парсинг EMAIL и URL
    #39274862
Adtain
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
По извратившись, сделал так:

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
declare
  p_value varchar2(200) := 'jdoe@company.co.uk Alexander.Kochnev@yandex.com Alexander.Kochnev http://privet.ru.ru/test/uiop, mail.ru,www.gov.cont.ru|facebook.com/atito мойсайт.рф';

  p_mail varchar2(100) := '[A-Z0-9._%-]+@[A-Z0-9._%-]+\.[A-Z]{2,6}';
  p_url  varchar2(200) := '((https?|ftp)://)?(www\.)?([а-яa-z0-9-]+\.)+[а-яa-z]{2,6}((/[а-яa-z0-9-]*)+|[[:blank:]]|$|[[:punct:]])';

begin
  for cur in (select regexp_replace(regexp_substr(n'' || p_value, p_mail || '|' || p_url, 1, level, 'i'), '([[:punct:]]|[[:space:]])+$') web_value
                from dual
               where regexp_substr(n'' || p_value, p_mail || '|' || p_url, 1, level, 'i') is not null
              connect by regexp_substr(n'' || p_value, p_mail || '|' || p_url, 1, level, 'i') is not null)
  loop
    dbms_output.put_line(cur.web_value);
  end loop;
end;
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / REGEXP парсинг EMAIL и URL
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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