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

Gunjubasik

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

igoreff

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

udder

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




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

udder

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

sergodjan66

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

udder

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

sergodjan66

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


74676
 
  • Спасибо
Реакции: udder

stanar

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

sergodjan66

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

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

vadim4ukr

Client
Регистрация
10.06.2016
Сообщения
220
Благодарностей
47
Баллы
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
Сообщения
58
Благодарностей
2
Баллы
8
Подскажите, как найти второй символ в переменной?
 

sergodjan66

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

sergodjan66

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

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

Hannes

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

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

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

Demunx

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

sergodjan66

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

76320
 

Вложения

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

Alexmd

Client
Регистрация
10.12.2018
Сообщения
917
Благодарностей
1 155
Баллы
93
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 и sergodjan66

Demunx

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

Alexmd

Client
Регистрация
10.12.2018
Сообщения
917
Благодарностей
1 155
Баллы
93
Не знаю, как регуляркой... Но вот этим кодом можете произвести замену сразу во всем файле.
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);
Может, мы, все-таки, удостоимся Вашей благодарности.
 
  • Спасибо
Реакции: sergodjan66 и Demunx

Demunx

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

upravlenie

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

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

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

Gunjubasik

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

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

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

Hannes

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

11111111 at 2222222
aaaabbbbb at re43fgsd
0000000at11111 at 3333333

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

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

atat111111.jpg
 

sergodjan66

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

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

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

Hannes

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

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

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

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

sergodjan66

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

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

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

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

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