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

Как взять текст которых находит между тегами <span>
нужно взять из
<span>
Tuesday, 12 January 2016
</span>

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

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

либо если береш через GET запрос,
обработка текста Regex
не совсем правильно обьяснил
мне нужно взять текст который находится в данных тегах и содержит например January
 
Если текст такой:
Код:
Развернуть Свернуть Копировать
<span>
Tuesday, 12 January 2016
</span>
<span>
фигня без дат
</span>

То такая регулярка ищет только строки с указанными днями и месяцами (надо дополнить всеми вариациями), без "фигни":
Код:
Развернуть Свернуть Копировать
(?<=<span>\s+).*?(Tuesday|Monday|Wednesday).*?(January|February|March).*?(?=\s+</span>)
 
Привет! Прошу поправить регулярку: (?<=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) пока все работает
 
Последнее редактирование:
Добрый вечер!

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

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

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


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

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

Реализация регулярных выражений различается в разных языках программирования например: С# 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
Всем спасибо за советы и предложения, проверял на сервисе
https://regex101.com/ - вот тут была ошибка, причем ругается гад на звездочку, она же везде используется...
Пришлось подгонять, регулярка составлялась не под ЗП а под другой язык, я хотел просто использовать ее конструктор, думал что он универсальный, а как выяснилось вообще нет) Пришлось заморачиваться, час делов и регулярка готова))
 
Можно ли как-то одной регуляркой с
Код:
Развернуть Свернуть Копировать
data-type="item" data-email="kushinoleg@mail.ru" data-id="" data-first-name="Олег" data-last-name=
вытащить
kushinoleg@mail.ru и Олег
и желательно что бы сразу записать их через какой-то разделитель, например ; ?
Заранее спасибо!
 
Добрый день!
Можете помочь в составление регулярки?

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

upd:
Задача решена, в другом топике Orka13 помог.
Регулярка:
[^A-Za-zА-ЯЁа-яё0-9\(\)\{\}\[\]\^\@\!\~\#\%\^\&\*\+\-\|\\\/\"\'\:\;\.\,\=\?\>\<]
 
Последнее редактирование:
  • Спасибо
Реакции: orka13
Можно ли как-то одной регуляркой с
Код:
Развернуть Свернуть Копировать
data-type="item" data-email="kushinoleg@mail.ru" data-id="" data-first-name="Олег" data-last-name=
вытащить
kushinoleg@mail.ru и Олег
и желательно что бы сразу записать их через какой-то разделитель, например ; ?
Заранее спасибо!
нашли решение? тоже искал когда-то что-то подобное... интересно так можно с разделителем вообще сделать?
 
Можно ли как-то одной регуляркой с
Код:
Развернуть Свернуть Копировать
data-type="item" data-email="kushinoleg@mail.ru" data-id="" data-first-name="Олег" data-last-name=
вытащить
kushinoleg@mail.ru и Олег
и желательно что бы сразу записать их через какой-то разделитель, например ; ?
Заранее спасибо!
Можно заменой по регулярке
Код:
Развернуть Свернуть Копировать
.*((?<=data-email=\").*?(?=\")).*((?<=data-first-name=\").*?(?=\")).*
на
Код:
Развернуть Свернуть Копировать
$1;$2
 
  • Спасибо
Реакции: yriy158 и Sanekk
Подскажите регулярку, как взять последнее значение из текста?
Код:
Развернуть Свернуть Копировать
ACCESS_NUMBER:123456:7900000000
Банальное - (?<=:).* - дает обе группы цифр, а нужны только после второго двоеточия
P.S. смайлик из-за автозамены, там двоеточие и скобка
 
Подскажите регулярку, как взять последнее значение из текста?
\d+$ (если только цифры) или \w+$ (если буквы, цифры и нижние подчеркивания)
Или [^:]+$ (любые символы, кроме двоеточия)
 
  • Спасибо
Реакции: one и kapelan28
Нужно взять всю левую часть до второго символа &
Последовательность параметров точно не меняется?
Если нет, то варианты регулярок:
Код:
Развернуть Свернуть Копировать
^.*?&.*?(?=&)
^.*?(?=&notif_t)
^.*?&id=\d+
^.*?story_fbid=\d+&id=\d+
Если может меняться, то можно сделать замену по регулярке
Код:
Развернуть Свернуть Копировать
(.*(?=\?)).*((story_fbid|(?<=[^\w])id)=\d+).*(((?<=[^\w])id|story_fbid)=\d+).*
на
Код:
Развернуть Свернуть Копировать
$1?$2&$4
 
  • Спасибо
Реакции: Astraport
Парни, подскажите регулярку чтоб отсеивала первые 6 значений в строке и оставляла все, что после.

[TABLE="class: brtb_item_table"][TBODY][TR][TD]На входе:[/TD]
[TD]На выходе:[/TD][/TR]
[TR][TD]*666ТА77*[/TD]
[TD="align: right"]
77*​
[/TD][/TR]
[TR][TD]А2**МО99[/TD]
[TD="align: right"]
99​
[/TD][/TR]
[TR][TD]А*00МО77[/TD]
[TD="align: right"]
77​
[/TD][/TR]
[TR][TD]А7*7****0[/TD]
[TD="align: right"]
**0​
[/TD][/TR]
[TR][TD]А0**МО77[/TD]
[TD="align: right"]
77​
[/TD][/TR]
[TR][TD]А6*9ММ99[/TD]
[TD="align: right"]
99​
[/TD][/TR]
[TR][TD]А666*А7**[/TD]
[TD="align: right"]
7**​
[/TD][/TR]
[TR][TD]*777М**50[/TD]
[TD="align: right"]
*50​
[/TD][/TR]
[TR][TD]А3*3ММ150[/TD]
[TD="align: right"]
150​
[/TD][/TR]
[TR][TD]*777**77[/TD]
[TD="align: right"]
77​
[/TD][/TR]
[TR][TD]А**6КР7*7[/TD]
[TD="align: right"]
7*7​
[/TD][/TR]
[TR][TD]А**5КР777[/TD]
[TD="align: right"]
777​
[/TD][/TR]
[TR][TD]*999ОО750[/TD]
[TD="align: right"]
750​
[/TD][/TR]
[TR][TD]А0*0М**50[/TD]
[TD="align: right"]
*50​
[/TD][/TR][/TBODY][/TABLE]
 
найти по регулярке и заменить на пустоту:
Код:
Развернуть Свернуть Копировать
^.{6}
 
  • Спасибо
Реакции: ТРОН
  • Спасибо
Реакции: ТРОН
Есть переменная "dgvbkj45sdv".

Какой регуляркой узнать если там цифры? Если есть - неуспех, только буквы - успех.
 
Обработка текста - поиск по Regex в переменную var1:
Код:
Развернуть Свернуть Копировать
\d
Потом эту переменную сравниваете пустая она или нет.
 
  • Спасибо
Реакции: maxtor1986
Вот задачка, которую пытаюсь решить: http://prntscr.com/hjwsar

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

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

Задача состоит в чем: в переменной есть текст. Нужно чтобы если ЛЮБОЕ из 2-х значений в нем присутствует, оно положило в переменную. Если не нашло текста - пусто!
Код:
Развернуть Свернуть Копировать
.*(scr|background).*
 
Добрый день. Есть текст в переменке. Как регексом рэндомное слово взять?
 
  • Спасибо
Реакции: Gizmond
Регулярка: \b\w+\b
В поле "Номер совпадения (Одно совпадение)" - Random

Извиняюсь , а можно сделать чтобы выбирались слова которые пишутся на кириллице ? И исключить из этого все спец символы(= * " № ! < ) и т.д ?
 
Последнее редактирование:

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