Регулярные выражения на все случаи жизни

Jidibi

Пользователь
Регистрация
05.09.2016
Сообщения
33
Благодарностей
5
Баллы
8
Как взять текст которых находит между тегами <span>
нужно взять из
<span>
Tuesday, 12 January 2016
</span>

Tuesday, 12 January 2016
то есть нужно цепляться за месяц или день недели.
дом и регуляркой:
Код:
(?<=<span>)[\w\W]*?(?=</span>)
либо
Код:
(?<=<span>).*?(?=</span>)
либо если береш через GET запрос,
обработка текста Regex
 

КарлМаркс

Активный пользователь
Регистрация
11.07.2017
Сообщения
200
Благодарностей
64
Баллы
28

Обращаем Ваше внимание на то, что данный пользователь заблокирован.
Не рекомендуем проводить с КарлМаркс какие-либо сделки.

дом и регуляркой:
Код:
(?<=<span>)[\w\W]*?(?=</span>)
либо
Код:
(?<=<span>).*?(?=</span>)
либо если береш через GET запрос,
обработка текста Regex
не совсем правильно обьяснил
мне нужно взять текст который находится в данных тегах и содержит например January
 

orka13

Client
Регистрация
07.05.2015
Сообщения
2 164
Благодарностей
2 164
Баллы
113
Если текст такой:
Код:
<span>
Tuesday, 12 January 2016
</span>
<span>
фигня без дат
</span>
То такая регулярка ищет только строки с указанными днями и месяцами (надо дополнить всеми вариациями), без "фигни":
Код:
(?<=<span>\s+).*?(Tuesday|Monday|Wednesday).*?(January|February|March).*?(?=\s+</span>)
 

MikR0ReR

Client
Регистрация
18.09.2017
Сообщения
35
Благодарностей
7
Баллы
8
Привет! Прошу поправить регулярку: (?<=href=('|"))/[^/][\w\.\u0020!@#$%:;&?/=_-]*?(?=(\1))
(?<=href=('|")) впереди искомого должно быть href=" или href='
/ начало искомого
[^/] второй символ искомого не должен быть /. Пробовал добавлять [^"] в разных вариантах, не хочет работать.
[\w\.\u0020!@#$%:;&?/=_-] далее эти символы могу встречаться, даже пробел
(?=(\1)) ну и ссылка на " или '

лезит /" class=

вход:
<a href="/" class="pflogo"></a> лезит /" class=
<li><span><a href="/youtube.php">YOUTUBE</a></span></li>
<li><span><a href="/facebook.php">FACEBOOK</a></span></li>
href='//www.2.org/favicon.ico' found at 150
href='//www.2.org' found at 12205

выход:
/youtube.php
/facebook.php
ДОБИЛСЯ РЕШЕНИЯ! добавил (?!") и получил (?<=href=('|"))/(?!")[^/][\w\.\u0020!@#$%:;&?/=_-]*?(?=\1) пока все работает
 
Последнее редактирование:

serg32

Client
Регистрация
27.02.2015
Сообщения
545
Благодарностей
15
Баллы
18
Добрый вечер!

Столкнулся с такой проблемой, создал регулярку в конструкторе регулярных выражений, в самом конструкторе все работает отлично, но по факту ничего не находит, а при проверке регулярки на онлайн сервисах выдается ошибка, что-то типа "Квантификатор внутри lookbehind делает его не фиксированной шириной"

Вот текст, который обрабатывается регуляркой:

"Received: from [127.0.0.1] (helo=udomain.ru)
by con.smprot.pro
(envelope-from <[email protected]>)
id 1e9EIA-0004gw-LJ
for [email protected]; Mon, 30 Oct 2017 17:56:06 +0000"


В конструкторе получилось следующие:

(?<=con.smprot.pro[\w\W]*?id ).*?(?=\s) - это в конструкторе работает без проблем, но в коде любого языка и самом зп выдает ошибку при компиляции, подскажите где ошибка? Я так думаю ему не нравится символы переноса строки "[\w\W]" и звездочка после них, так как он не знает максимальную глубину поиска, это судя по переводу ошибки)
 

orka13

Client
Регистрация
07.05.2015
Сообщения
2 164
Благодарностей
2 164
Баллы
113
да, другие проги могут лажать, но зенка и в кубике "Обработка текста - Regex", и в C# блоке норм принимает такую регулярку. Может ты как-то не так ее используешь. Надо так:
Код:
string In_Text = project.Variables["Text"].Value; // в переменной Text лежит наш текст
string pattern = @"(?<=con.smprot.pro[\w\W]*?id ).*?(?=\s)"; // наша регулярка
var regex = new System.Text.RegularExpressions.Regex(pattern, System.Text.RegularExpressions.RegexOptions.IgnoreCase);
if (regex.IsMatch(In_Text))
    return regex.Match(In_Text); // это выводим то что нашли (первое совпадение)
else
    return "No";  // это отвечаем если ничего не находим
 
  • Спасибо
Реакции: serg32

MikR0ReR

Client
Регистрация
18.09.2017
Сообщения
35
Благодарностей
7
Баллы
8
а при проверке регулярки на онлайн сервисах выдается ошибка
Реализация регулярных выражений различается в разных языках программирования например: С# JavaScript PHP Python. Не мудрено что не работает. Смотрите какой язык поддерживает онлайн сервис.

Сам я пользуюсь для С#:
http://regexhero.net/ программа на компьютер (ваша регулярка работает)
http://rextester.com/tester онлайн сервис (ваша регулярка работает)

редко
http://regexstorm.net/tester онлайн сервис (ваша регулярка работает)
http://derekslager.com/blog/posts/2007/09/a-better-dotnet-regular-expression-tester.ashx онлайн сервис (ваша регулярка работает)
 
  • Спасибо
Реакции: Sanekk и serg32

serg32

Client
Регистрация
27.02.2015
Сообщения
545
Благодарностей
15
Баллы
18
Всем спасибо за советы и предложения, проверял на сервисе
https://regex101.com/ - вот тут была ошибка, причем ругается гад на звездочку, она же везде используется...
Пришлось подгонять, регулярка составлялась не под ЗП а под другой язык, я хотел просто использовать ее конструктор, думал что он универсальный, а как выяснилось вообще нет) Пришлось заморачиваться, час делов и регулярка готова))
 

yriy158

Client
Регистрация
10.08.2013
Сообщения
491
Благодарностей
300
Баллы
63
Можно ли как-то одной регуляркой с
Код:
data-type="item" data-email="[email protected]" data-id="" data-first-name="Олег" data-last-name=
вытащить
[email protected] и Олег
и желательно что бы сразу записать их через какой-то разделитель, например ; ?
Заранее спасибо!
 

Hannes

Client
Регистрация
03.02.2016
Сообщения
492
Благодарностей
234
Баллы
43
Добрый день!
Можете помочь в составление регулярки?

Нужно взять все английские и русские буквы, цифры и символы (){}[]^@!~#%^&*+-_|\/"':;.,=?><
Задача очистка текста по регулярке, удалить всё кроме символов выше.

upd:
Задача решена, в другом топике Orka13 помог.
Регулярка:
[^A-Za-zА-ЯЁа-яё0-9\(\)\{\}\[\]\^\@\!\~\#\%\^\&\*\+\-\|\\\/\"\'\:\;\.\,\=\?\>\<]
 
Последнее редактирование:
  • Спасибо
Реакции: orka13

Sanekk

Client
Регистрация
24.06.2016
Сообщения
988
Благодарностей
388
Баллы
63
Можно ли как-то одной регуляркой с
Код:
data-type="item" data-email="[email protected]" data-id="" data-first-name="Олег" data-last-name=
вытащить
[email protected] и Олег
и желательно что бы сразу записать их через какой-то разделитель, например ; ?
Заранее спасибо!
нашли решение? тоже искал когда-то что-то подобное... интересно так можно с разделителем вообще сделать?
 

Dimionix

Moderator
Регистрация
09.04.2011
Сообщения
3 068
Благодарностей
3 100
Баллы
113
Можно ли как-то одной регуляркой с
Код:
data-type="item" data-email="[email protected]" data-id="" data-first-name="Олег" data-last-name=
вытащить
[email protected] и Олег
и желательно что бы сразу записать их через какой-то разделитель, например ; ?
Заранее спасибо!
Можно заменой по регулярке
Код:
.*((?<=data-email=\").*?(?=\")).*((?<=data-first-name=\").*?(?=\")).*
на
Код:
$1;$2
 
  • Спасибо
Реакции: yriy158 и Sanekk

kapelan28

Client
Регистрация
22.09.2015
Сообщения
469
Благодарностей
185
Баллы
43
Подскажите регулярку, как взять последнее значение из текста?
Код:
ACCESS_NUMBER:123456:7900000000
Банальное - (?<=:-).* - дает обе группы цифр, а нужны только после второго двоеточия
P.S. смайлик из-за автозамены, там двоеточие и скобка
 

Dimionix

Moderator
Регистрация
09.04.2011
Сообщения
3 068
Благодарностей
3 100
Баллы
113
Подскажите регулярку, как взять последнее значение из текста?
\d+$ (если только цифры) или \w+$ (если буквы, цифры и нижние подчеркивания)
Или [^:]+$ (любые символы, кроме двоеточия)
 
  • Спасибо
Реакции: one и kapelan28

Astraport

Client
Регистрация
01.05.2015
Сообщения
4 941
Благодарностей
4 333
Баллы
113

Dimionix

Moderator
Регистрация
09.04.2011
Сообщения
3 068
Благодарностей
3 100
Баллы
113
Нужно взять всю левую часть до второго символа &
Последовательность параметров точно не меняется?
Если нет, то варианты регулярок:
Код:
^.*?&.*?(?=&)
^.*?(?=&notif_t)
^.*?&id=\d+
^.*?story_fbid=\d+&id=\d+
Если может меняться, то можно сделать замену по регулярке
Код:
(.*(?=\?)).*((story_fbid|(?<=[^\w])id)=\d+).*(((?<=[^\w])id|story_fbid)=\d+).*
на
Код:
$1?$2&$4
 
  • Спасибо
Реакции: Astraport

Astraport

Client
Регистрация
01.05.2015
Сообщения
4 941
Благодарностей
4 333
Баллы
113

ТРОН

Client
Регистрация
31.07.2016
Сообщения
336
Благодарностей
380
Баллы
63
Парни, подскажите регулярку чтоб отсеивала первые 6 значений в строке и оставляла все, что после.

На входе:На выходе:
*666ТА77*
77*​
А2**МО99
99​
А*00МО77
77​
А7*7****0
**0​
А0**МО77
77​
А6*9ММ99
99​
А666*А7**
7**​
*777М**50
*50​
А3*3ММ150
150​
*777**77
77​
А**6КР7*7
7*7​
А**5КР777
777​
*999ОО750
750​
А0*0М**50
*50​
[TBODY] [/TBODY]
 

orka13

Client
Регистрация
07.05.2015
Сообщения
2 164
Благодарностей
2 164
Баллы
113
найти по регулярке и заменить на пустоту:
Код:
^.{6}
 
  • Спасибо
Реакции: ТРОН

Dimionix

Moderator
Регистрация
09.04.2011
Сообщения
3 068
Благодарностей
3 100
Баллы
113
  • Спасибо
Реакции: ТРОН

ТРОН

Client
Регистрация
31.07.2016
Сообщения
336
Благодарностей
380
Баллы
63

maxtor1986

Client
Регистрация
25.12.2015
Сообщения
14
Благодарностей
0
Баллы
1
Есть переменная "dgvbkj45sdv".

Какой регуляркой узнать если там цифры? Если есть - неуспех, только буквы - успех.
 

orka13

Client
Регистрация
07.05.2015
Сообщения
2 164
Благодарностей
2 164
Баллы
113
Обработка текста - поиск по Regex в переменную var1:
Код:
\d
Потом эту переменную сравниваете пустая она или нет.
 
  • Спасибо
Реакции: maxtor1986

maxtor1986

Client
Регистрация
25.12.2015
Сообщения
14
Благодарностей
0
Баллы
1
Вот задачка, которую пытаюсь решить: http://prntscr.com/hjwsar

Задача состоит в чем: в переменной есть текст. Нужно чтобы если ЛЮБОЕ из 2-х значений в нем присутствует, оно положило в переменную. Если не нашло текста - пусто!
 

evgen_po

Client
Регистрация
27.08.2013
Сообщения
847
Благодарностей
528
Баллы
93
Вот задачка, которую пытаюсь решить: http://prntscr.com/hjwsar

Задача состоит в чем: в переменной есть текст. Нужно чтобы если ЛЮБОЕ из 2-х значений в нем присутствует, оно положило в переменную. Если не нашло текста - пусто!
Одну палку а не две нужно прописывать
 

Dimionix

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

axiles

Client
Регистрация
22.07.2015
Сообщения
25
Благодарностей
2
Баллы
3

Gizmond

Client
Регистрация
18.02.2017
Сообщения
264
Благодарностей
51
Баллы
28
Добрый день. Есть текст в переменке. Как регексом рэндомное слово взять?
 

Dimionix

Moderator
Регистрация
09.04.2011
Сообщения
3 068
Благодарностей
3 100
Баллы
113
  • Спасибо
Реакции: Gizmond

Gizmond

Client
Регистрация
18.02.2017
Сообщения
264
Благодарностей
51
Баллы
28
Регулярка: \b\w+\b
В поле "Номер совпадения (Одно совпадение)" - Random
Извиняюсь , а можно сделать чтобы выбирались слова которые пишутся на кириллице ? И исключить из этого все спец символы(= * " № ! < ) и т.д ?
 
Последнее редактирование:

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