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

Gunjubasik

Client
Регистрация
30.05.2019
Сообщения
3 564
Благодарностей
1 367
Баллы
113
Спасибо, но проблема в том, что там еще куча ссылок бывает и не всегда номер совпадения одинаковый, поэтому и хотелось что б понадежнее, именно по признаку /register/ искать.
C#:
(?<=")+.{0,999}/register/.*(?=")
 
  • Спасибо
Реакции: igoreff

igoreff

Client
Регистрация
24.02.2011
Сообщения
193
Благодарностей
24
Баллы
18
Спасибо, немного подправил методом тыка, теперь точно то, что надо (?<=")+.{0,999}/register/.*?(?=")
 

udder

Client
Регистрация
28.03.2017
Сообщения
618
Благодарностей
128
Баллы
43
Сейчас еще раз тестировал, но с числами двузначными, если число двузначное, то регулярка ставить слово перед кадlой цифрой
Например, число 12, навыходе слово1слово2 , т.е. регулярка делит число




Почитал справку, помогло, нужно было плюс после d
74580
 
Последнее редактирование:
  • Спасибо
Реакции: Sergodjan

udder

Client
Регистрация
28.03.2017
Сообщения
618
Благодарностей
128
Баллы
43
Подскажите, как обработать строку, чтобы оставить только буквы, без символов.
 

Sergodjan

Administrator
Команда форума
Регистрация
05.09.2012
Сообщения
20 564
Благодарностей
9 180
Баллы
113
  • Спасибо
Реакции: udder

udder

Client
Регистрация
28.03.2017
Сообщения
618
Благодарностей
128
Баллы
43
Спасибо дружище за твою отзывчивость, всегда приятно получить оперативный ответ от профи)
Сохранил твою регулярку в блокнот, еще нашел вариант сохранения с цифрами [^А-Яа-яA-Za-z0-9\s]+
 
  • Спасибо
Реакции: Sergodjan

udder

Client
Регистрация
28.03.2017
Сообщения
618
Благодарностей
128
Баллы
43
  • Спасибо
Реакции: Sergodjan

Sergodjan

Administrator
Команда форума
Регистрация
05.09.2012
Сообщения
20 564
Благодарностей
9 180
Баллы
113
Криво работает. Вот обработал переменную, что то наоборот вырезало текст, оставило цифры и символы вашей регуляркой
Для Замены нужно дополнить регулярку спец-символом отрицания "^": (?i)[^a-zа-я]+


74676
 

stanar

Client
Регистрация
19.12.2015
Сообщения
315
Благодарностей
157
Баллы
43
Есть страница без разметки практически. Нужные блоки текста отделены друг от друга двойным переносом текста. Как их получить?
 

Sergodjan

Administrator
Команда форума
Регистрация
05.09.2012
Сообщения
20 564
Благодарностей
9 180
Баллы
113
Есть страница без разметки практически. Нужные блоки текста отделены друг от друга двойным переносом текста. Как их получить?
Можно преобразовать текст в список по разделителю "двойной ввод" и брать строки из списка.

74746
 
Последнее редактирование:
  • Спасибо
Реакции: stanar

vadim4ukr

Client
Регистрация
10.06.2016
Сообщения
217
Благодарностей
48
Баллы
28
Друзья помогите, забираю текст через DOM, сразу в список. Но Первое слово в нужном мне абзаце выделено жирным, соответственно текст я получаю такого вида - текст </strong> текст текст. Как изменить регулярное выражение, чтобы при парсинге страницы убрать этот тег. Регулярка выглядит так (?<=<div\ class="text"><strong>)[\w\W]*?(?=</div>). В нужном тексте нужны по идее только цифры и кирилица.
берёшь в переменную, а потом через экшн заменой меняешь тэг на "пусто" и кладёшь обратно в переменную
 

2276

Client
Регистрация
26.09.2020
Сообщения
11
Благодарностей
0
Баллы
1
Здравствуйте! Помогите, пожалуйста, уже несколько дней бьюсь с одной задачей - из текста вида:
Название страны 555 ед. 2005 года «Название товара»
регуляркой вытащить название страны. Оно может быть как из одного слова так из нескольких. А после названия всегда идут цифры, указывающие количество.
Пока удалось вытащить только первое слово в названии выражением ^\w*
 

Markoonij

Client
Регистрация
13.10.2020
Сообщения
70
Благодарностей
3
Баллы
8
Подскажите, как найти второй символ в переменной?
 

Sergodjan

Administrator
Команда форума
Регистрация
05.09.2012
Сообщения
20 564
Благодарностей
9 180
Баллы
113
  • Спасибо
Реакции: Markoonij

Sergodjan

Administrator
Команда форума
Регистрация
05.09.2012
Сообщения
20 564
Благодарностей
9 180
Баллы
113
Здравствуйте! Помогите, пожалуйста, уже несколько дней бьюсь с одной задачей - из текста вида:
Название страны 555 ед. 2005 года «Название товара»
регуляркой вытащить название страны. Оно может быть как из одного слова так из нескольких. А после названия всегда идут цифры, указывающие количество.
Пока удалось вытащить только первое слово в названии выражением ^\w*
Регулярка: .*?(?=\s+\d)

74795
 
  • Спасибо
Реакции: 2276

Hannes

Client
Регистрация
03.02.2016
Сообщения
527
Благодарностей
273
Баллы
63
Здравствуйте! Помогите, пожалуйста, правильно составить такую регулярку:

Перед искомым выражением всегда есть: (тут ничего, пусто)
Это идёт после искомого текста: последняя / или ?

Гайды по регуляркам честно смотрел, но не получилось нормальное работающее выражение сделать.
 

samsonnn

Client
Регистрация
02.06.2015
Сообщения
1 802
Благодарностей
1 474
Баллы
113
  • Спасибо
Реакции: Sergodjan и Hannes

Hannes

Client
Регистрация
03.02.2016
Сообщения
527
Благодарностей
273
Баллы
63

Demunx

Новичок
Регистрация
28.04.2021
Сообщения
3
Благодарностей
1
Баллы
3
Только не кидайтесь шапками. Всё перегуглил, не могу решить такую простейшую задачу.
Имеется:
"1 переулок ЮРИЯ ГАГАРИНА, дом 3"
Нужно сделать:
"1 переулок Юрия Гагарина, дом 3"
Хелп плиз.
 

Sergodjan

Administrator
Команда форума
Регистрация
05.09.2012
Сообщения
20 564
Благодарностей
9 180
Баллы
113
Только не кидайтесь шапками. Всё перегуглил, не могу решить такую простейшую задачу.
Имеется:
"1 переулок ЮРИЯ ГАГАРИНА, дом 3"
Нужно сделать:
"1 переулок Юрия Гагарина, дом 3"
Хелп плиз.
Приложил пример шаблона на стандартных кубиках.
Вот результат его работы:

76320
 

Вложения

  • Спасибо
Реакции: Demunx и Alexmd

Alexmd

Client
Регистрация
10.12.2018
Сообщения
1 021
Благодарностей
1 423
Баллы
113
C#:
string text = "1 переулок ЮРИЯ ГАГАРИНА, дом 3";
foreach(string part in text.Split(' '))
    if(part.Length > 1 && part == part.ToUpper())
        text = text.Replace(part, new System.Globalization.CultureInfo("ru-RU").TextInfo.ToTitleCase(part.ToLower()));
return text;
 
  • Спасибо
Реакции: Demunx и Sergodjan

Demunx

Новичок
Регистрация
28.04.2021
Сообщения
3
Благодарностей
1
Баллы
3
Буду благодарен, если сможете дать регулярное выражение для EmEditor
 

Alexmd

Client
Регистрация
10.12.2018
Сообщения
1 021
Благодарностей
1 423
Баллы
113
Не знаю, как регуляркой... Но вот этим кодом можете произвести замену сразу во всем файле.
C#:
string path = @"C:\Users\user\Downloads\new 2.txt";//здесь укажите путь к файлу
var list = File.ReadAllLines(path, Encoding.UTF8).ToList();
for(int i = 0; i < list.Count; i++){
    string text = list[i];
    foreach(string part in text.Split(' '))
        if(part.Length > 1 && part == part.ToUpper())
            text = text.Replace(part, new System.Globalization.CultureInfo("ru-RU").TextInfo.ToTitleCase(part.ToLower()));
    list[i] = text;
}
File.WriteAllLines(path, list);
Может, мы, все-таки, удостоимся Вашей благодарности.
 
  • Спасибо
Реакции: Sergodjan и Demunx

Demunx

Новичок
Регистрация
28.04.2021
Сообщения
3
Благодарностей
1
Баллы
3
Благодарю!
 
  • Спасибо
Реакции: Alexmd

upravlenie

Client
Регистрация
31.12.2020
Сообщения
232
Благодарностей
16
Баллы
18
Есть два одинаковых текста :

"текст текст"
"текст текст"

как мне регуляркой взять второй текст?
 

Gunjubasik

Client
Регистрация
30.05.2019
Сообщения
3 564
Благодарностей
1 367
Баллы
113
Есть два одинаковых текста :

"текст текст"
"текст текст"

как мне регуляркой взять второй текст?
Обработка текста - Regex - указываете текст где ищем, указываете текст который ищем там где регулярка и выбираете совпадение по номеру либо последнее совпадение.
 

Hannes

Client
Регистрация
03.02.2016
Сообщения
527
Благодарностей
273
Баллы
63
Помогите, пожалуйста, составить регулярки(у), что бы разбить значение на 2 части:

11111111 at 2222222
aaaabbbbb at re43fgsd
0000000at11111 at 3333333

То, что до at в одну, то, что после в другую переменные нужно поместить.

Вроде показалось мне простой задачей, но подвис.

atat111111.jpg
 

Sergodjan

Administrator
Команда форума
Регистрация
05.09.2012
Сообщения
20 564
Благодарностей
9 180
Баллы
113
Помогите, пожалуйста, составить регулярки(у), что бы разбить значение на 2 части:

11111111 at 2222222
aaaabbbbb at re43fgsd
0000000at11111 at 3333333
Можно двумя регулярками брать:
.*?(?=\ at) (левая часть)
(?<=at\ ).* (правая часть)

Можно через Обрабокта текста - Split (разделитель: at)
 
  • Спасибо
Реакции: Hannes

Hannes

Client
Регистрация
03.02.2016
Сообщения
527
Благодарностей
273
Баллы
63
Напомните, пожалуйста, как в регулярном выражение прописать игнорирование буквенных и цифровых значений (A-Za-z0-9) в отдельной части текста?

/managers/:account_id"],"FdrFJe":"8614406522123124098",

Нужное значение выделенное зелёным.
Красным выделены символы, которые всегда разные.

(?<=brandaccounts/managers/:account_id"],"FdrFJe":").*?(?=",)
 

Sergodjan

Administrator
Команда форума
Регистрация
05.09.2012
Сообщения
20 564
Благодарностей
9 180
Баллы
113
Напомните, пожалуйста, как в регулярном выражение прописать игнорирование буквенных и цифровых значений (A-Za-z0-9) в отдельной части текста?

/managers/:account_id"],"FdrFJe":"8614406522123124098",

Нужное значение выделенное зелёным.
Красным выделены символы, которые всегда разные.

(?<=brandaccounts/managers/:account_id"],"FdrFJe":").*?(?=",)
Можно заменить FdrFJe на .* (любая последовательность)
(?<=brandaccounts/managers/:account_id"],".*":").*?(?=",)
 
  • Спасибо
Реакции: Hannes

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