Бесплатно напишу регулярное выражение. Часть 2.

Wide

Client
Регистрация
04.02.2013
Сообщения
944
Благодарностей
252
Баллы
63
ну ты/вы БАШКА вообще. спасибо друг))
я обрабатывал двумя регулярками. первая 9.* и второй брал первые восемь цифр .{0,8} В копилку положил. ещё раз спасибо!!
 
  • Спасибо
Реакции: konfuciy

Severip

Client
Регистрация
17.10.2013
Сообщения
346
Благодарностей
98
Баллы
28
Привет! Помогите плиз с регуляркой.
Есть текст: <p>Первое предложение. Второе предложение. Третье предложение.</p>
(?<=<p>)[\w\W]*?\.
берет первое предложение все ок, а как взять первые два предложения?
Спасибо.
 

ZennoScript

Moderator
Регистрация
04.03.2011
Сообщения
4 450
Благодарностей
1 880
Баллы
113
Привет! Помогите плиз с регуляркой.
Есть текст: <p>Первое предложение. Второе предложение. Третье предложение.</p>
(?<=<p>)[\w\W]*?\.
берет первое предложение все ок, а как взять первые два предложения?
Спасибо.
Код:
(?<=<p>)[\w\W]*?\..*?\.
 
  • Спасибо
Реакции: Severip

Severip

Client
Регистрация
17.10.2013
Сообщения
346
Благодарностей
98
Баллы
28
Спасибо, а то у меня хвост длиннее получился раза в два :-)
 

Fobos

Client
Регистрация
05.10.2015
Сообщения
51
Благодарностей
5
Баллы
8
В свежем конструкторе регулярных выражений увидел возможность делать групповую обработку, похоже за счет этого можно серьезно ускорить парсинг данных, парсить одним блоком сразу весь контент, но не могу понять, как адаптировать мой код.

Есть масса блоков в виде:
1 блок - (?<=> Category: </div>\r\n.*tib"> )[\w\W]*?(?= </div>)
2 блок - (?<=Sub Category: </div>\r\n.*tib"> )[\w\W]*?(?= </div>)
код документа:
<div class="col-xs-4 tib dark-title"> Category: </div>
<div class="col-xs-8 tib"> House </div>
тут много мусора, который не нужен
<div class="col-xs-4 tib dark-title"> Sub Category: </div>
<div class="col-xs-8 tib"> for Sale </div>
Каким образом можно из:
1 блок - (?<=> Category: </div>\r\n.*tib"> )[\w\W]*?(?= </div>)
2 блок - (?<=Sub Category: </div>\r\n.*tib"> )[\w\W]*?(?= </div>)

Можно сделать 1 регулярное выражение, что бы на выходе было 2 столбца данных для последующей записи в таблицу?
 
Регистрация
22.12.2015
Сообщения
96
Благодарностей
1
Баллы
8
Здравствуйте! Поможете составить регулярное выражения, на поиск разных вариаций email? Да, на форуме куча регулярок для поиска email адресов, но нет ни одной супер универсальной, которая бы находила все без ошибок. В гугле кстати тоже не нашел...

Вот текст для тестирования:

"текст для тестирования [email protected] текст
<span>[email protected]</span>
mailto:'[email protected]'
[email protected] конец текста"

Нужно найти 4 варианта email

Перепробовал много вариантов и с каждой регуляркой были проблемы:-)
 

Dimionix

Moderator
Регистрация
09.04.2011
Сообщения
3 068
Благодарностей
3 101
Баллы
113

konfuciy

Client
Регистрация
07.05.2014
Сообщения
1 402
Благодарностей
131
Баллы
63
Здравствуйте! Поможете составить регулярное выражения, на поиск разных вариаций email? Да, на форуме куча регулярок для поиска email адресов, но нет ни одной супер универсальной, которая бы находила все без ошибок. В гугле кстати тоже не нашел...

Вот текст для тестирования:

"текст для тестирования [email protected] текст
<span>[email protected]</span>
mailto:'[email protected]'
[email protected] конец текста"

Нужно найти 4 варианта email

Перепробовал много вариантов и с каждой регуляркой были проблемы:-)
например, так [\w\d\-\.]+@[\w\d\-]+\.\w+
 
Регистрация
22.12.2015
Сообщения
96
Благодарностей
1
Баллы
8
Регистрация
22.12.2015
Сообщения
96
Благодарностей
1
Баллы
8
Регистрация
22.12.2015
Сообщения
96
Благодарностей
1
Баллы
8
например, так [\w\d\-\.]+@[\w\d\-]+\.\w+
А вот ваша регулярка, вроде как справляется))) Но я ее еще помучаю, может еще дырки найду, но надеюсь, что их не будет)) А вообще очень помогли, спасибо)
 

ZennoScript

Moderator
Регистрация
04.03.2011
Сообщения
4 450
Благодарностей
1 880
Баллы
113
Если вы про эту регулярку [\.\-_A-Za-z0-9]+?@[\.\-A-Za-z0-9]+?[\.A-Za-z0-9]{2,} из указанной вами темы, то она со своей задачей не справляется:-)
Приведите пример, где эта регулярка не справляется?
 

konfuciy

Client
Регистрация
07.05.2014
Сообщения
1 402
Благодарностей
131
Баллы
63

Bot_Sculptor

Client
Регистрация
11.06.2012
Сообщения
787
Благодарностей
237
Баллы
43
Здравствуйте! Поможете составить регулярное выражения, на поиск разных вариаций email? Да, на форуме куча регулярок для поиска email адресов, но нет ни одной супер универсальной, которая бы находила все без ошибок. В гугле кстати тоже не нашел...

Вот текст для тестирования:

"текст для тестирования [email protected] текст
<span>[email protected]</span>
mailto:'[email protected]'
[email protected] конец текста"

Нужно найти 4 варианта email

Перепробовал много вариантов и с каждой регуляркой были проблемы:-)
выбирай http://regexlib.com/Search.aspx?k=email
 
  • Спасибо
Реакции: Аркадий
Регистрация
22.12.2015
Сообщения
96
Благодарностей
1
Баллы
8

ZennoScript

Moderator
Регистрация
04.03.2011
Сообщения
4 450
Благодарностей
1 880
Баллы
113
Регистрация
22.12.2015
Сообщения
96
Благодарностей
1
Баллы
8

Konrod_m

Client
Регистрация
18.09.2014
Сообщения
1 662
Благодарностей
919
Баллы
113
Всем привет.

Помогите с регуляркой, пожалуйста.

Есть список (пример ниже).
Ищем в нем совпадение с текстом из переменной А. Если нашли - берем всю строку в переменную Б.

Обычно искал регуляркой: {-Variable.А}.*

Но регулярка не срабатывает если в текст попадают скобки или другие символы, которые должны экранироваться. А как их заэкранировать не могу понять.

Заранее благодарю!

п.с. статьи читал, что-то не помогают..

Пример переменной А:
Крупная кухонная техника/Газовые плиты (50-55 см)

Пример списка:
Элитная техника/Элитная встраиваемая техника/Элитные встраиваемые холодильники;Холодильники
Кухонная техника/Блендеры;Блендеры
Крупная кухонная техника/Газовые плиты (50-55 см);Плиты
 

konfuciy

Client
Регистрация
07.05.2014
Сообщения
1 402
Благодарностей
131
Баллы
63
Всем привет.

Помогите с регуляркой, пожалуйста.

Есть список (пример ниже).
Ищем в нем совпадение с текстом из переменной А. Если нашли - берем всю строку в переменную Б.

Обычно искал регуляркой: {-Variable.А}.*

Но регулярка не срабатывает если в текст попадают скобки или другие символы, которые должны экранироваться. А как их заэкранировать не могу понять.

Заранее благодарю!

п.с. статьи читал, что-то не помогают..

Пример переменной А:
Крупная кухонная техника/Газовые плиты (50-55 см)

Пример списка:
Элитная техника/Элитная встраиваемая техника/Элитные встраиваемые холодильники;Холодильники
Кухонная техника/Блендеры;Блендеры
Крупная кухонная техника/Газовые плиты (50-55 см);Плиты
попробуйте так
1. Обработка текста/Escape строки/результат в переменную VAR - туда вставляете вашу переменную А
2. Список сохраняете в переменную SPIS
3. Обработка текста/Regex/ текст - SPIS - выражение для регекса - .*{-Variable.VAR-}.* - результат в переменную RESULT
 
  • Спасибо
Реакции: Konrod_m
Регистрация
22.12.2015
Сообщения
96
Благодарностей
1
Баллы
8
Не могу решить вот такую задачу, если ее вообще можно решить при помощи регулярного выражения. Есть DOM дерево, где находятся 2 email адреса:

Пример:
"текст<span class='mail'>[email protected]</span>Тут какой нибудь текст<div id='main-mail'>[email protected]</div>опять текст"

Возможно ли, чтобы регулярное выражение пропускало первый email и находило второй?

Дополню: нужно, чтобы регулярка пропускала email адреса "[email protected]" именно такие (без учета регистра) Даже если "[email protected]" находится на втором месте.
HTML разметка может быть любой (приведена для примера). Т.е. решение должно быть универсальное.

Пример:
"текст<span class='mail'>[email protected]</span>Тут какой нибудь текст<div id='main-mail'>[email protected]</div>опять текст"
 
Последнее редактирование:

Dimionix

Moderator
Регистрация
09.04.2011
Сообщения
3 068
Благодарностей
3 101
Баллы
113
Регистрация
22.12.2015
Сообщения
96
Благодарностей
1
Баллы
8
Пост выше немного дополнил, а то ни совсем точно описал задачу. Т.е. нужно, чтобы email адрес "[email protected]" пропускался и находился обычный email адрес пользователя. При этом "[email protected]" может находится или первым или вторым
 

Dimionix

Moderator
Регистрация
09.04.2011
Сообщения
3 068
Благодарностей
3 101
Баллы
113
Пост выше немного дополнил, а то ни совсем точно описал задачу. Т.е. нужно, чтобы email адрес "[email protected]" пропускался и находился обычный email адрес пользователя. При этом "[email protected]" может находится или первым или вторым
Код:
(?<=main-mail'>).*?(?=<)
 
Регистрация
22.12.2015
Сообщения
96
Благодарностей
1
Баллы
8
Код:
(?<=main-mail'>).*?(?=<)
Ну как бы задачу решили) Только решение не универсальное)) Еще раз пост дополню) HTML разметка может быть любой, этого я не уточнил, моя вина)
 

konfuciy

Client
Регистрация
07.05.2014
Сообщения
1 402
Благодарностей
131
Баллы
63
Ну как бы задачу решили) Только решение не универсальное)) Еще раз пост дополню) HTML разметка может быть любой, этого я не уточнил, моя вина)
можно так, например:
1. взять все мэйлы в список
2. удалить из списка все мэйлы по маске raiting\@mail\.ru
3. из оставшегося списка взять первую строку
 
Регистрация
22.12.2015
Сообщения
96
Благодарностей
1
Баллы
8
можно так, например:
1. взять все мэйлы в список
2. удалить из списка все мэйлы по маске raiting\@mail\.ru
3. из оставшегося списка взять первую строку
Тоже уже думал о таком решении:-) Хотелось бы еще варианты, если они есть. Я так понял, что в регулярном выражении нельзя указать: искать email, кроме [email protected] ?
 

konfuciy

Client
Регистрация
07.05.2014
Сообщения
1 402
Благодарностей
131
Баллы
63
Тоже уже думал о таком решении:-) Хотелось бы еще варианты, если они есть. Я так понял, что в регулярном выражении нельзя указать: искать email, кроме [email protected] ?
отчего ж нельзя, можно. просто в ЗП регулярки немного другие, чем в ноутпад++, а я делал только в ноутпаде. сейчас гляну, если особых отличий нет, то может получится

не очень изящно, но на вашем примере работает

(?<=>)((?!Rating|rating|<|>|=|\-|"|').)*?@[\w\d\-\.]+?\.[\w]+
 
Последнее редактирование:
  • Спасибо
Реакции: Аркадий
Регистрация
22.12.2015
Сообщения
96
Благодарностей
1
Баллы
8
отчего ж нельзя, можно. просто в ЗП регулярки немного другие, чем в ноутпад++, а я делал только в ноутпаде. сейчас гляну, если особых отличий нет, то может получится

не очень изящно, но на вашем примере работает

(?<=>)((?!Rating|rating|<|>|=|\-|"|').)*?@[\w\d\-\.]+?\.[\w]+
Спасибо)) попробую разобрать ваш шаблон)
 

konfuciy

Client
Регистрация
07.05.2014
Сообщения
1 402
Благодарностей
131
Баллы
63
Регистрация
22.12.2015
Сообщения
96
Благодарностей
1
Баллы
8
вот так можно улучшить
(?<=>)((?!Rating|rating)[\w\-\.])*?@[\w\d\-\.]+?\.[\w]+
Скажите, а восклицательный знак какую роль в регулярке играет? Читал книгу по регулярки и что то там не было восклицательного метасимвола)))
 

Кто просматривает тему: (Всего: 9, Пользователи: 0, Гости: 9)