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

Hannes

Client
Регистрация
03.02.2016
Сообщения
540
Благодарностей
278
Баллы
63
@sergodjan66, спасибо!

Но не работает так.

РегуляркаZenno.jpg

 

Sergodjan

Administrator
Команда форума
Регистрация
05.09.2012
Сообщения
22 450
Благодарностей
10 009
Баллы
113
  • Спасибо
Реакции: Hannes

Roman48

Client
Регистрация
28.02.2016
Сообщения
2 058
Благодарностей
746
Баллы
113
  • Спасибо
Реакции: bizzon и Hannes

Hannes

Client
Регистрация
03.02.2016
Сообщения
540
Благодарностей
278
Баллы
63
@sergodjan66
@Roman48

Запоздалое огромное спасибо за помощь! :dk::bo:
Написал, а отправить забыл( :bk:
 
  • Спасибо
Реакции: Sergodjan

bizzon

Client
Регистрация
08.09.2015
Сообщения
1 118
Благодарностей
135
Баллы
63
Часто необходимость регулярного выражения с Исключающим Стоп Минус словом.

C#:
^(?i)(?=.*Поисковое)(?!.*Исключение).*

Скриншот 2021-06-26 17.05.07.png
 
  • Спасибо
Реакции: Astraport

PussyM

Client
Регистрация
08.04.2019
Сообщения
69
Благодарностей
21
Баллы
8
Прошу помощи, как получить текст с первого слеша до третьего?

text/21279811/0/text
 

Sergodjan

Administrator
Команда форума
Регистрация
05.09.2012
Сообщения
22 450
Благодарностей
10 009
Баллы
113
  • Спасибо
Реакции: PussyM

PussyM

Client
Регистрация
08.04.2019
Сообщения
69
Благодарностей
21
Баллы
8
<k
Благодарю, по всей видимости не так поставил свой вопрос. Так как подобное решение я уже использовал и оно мне не подходит.

В строке может быть больше колечество слешей, но мне надо чтоб регулярка содержала правило: брать текст только от 1 слеша до 3го.

text/21279811/0/text/text/text/text

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

Alexmd

Client
Регистрация
10.12.2018
Сообщения
1 021
Благодарностей
1 431
Баллы
113
C#:
string text = "text/21279811/0/text/text/text/text";
return string.Join("/", text.Split('/').Range("1-2"));
 

Sergodjan

Administrator
Команда форума
Регистрация
05.09.2012
Сообщения
22 450
Благодарностей
10 009
Баллы
113
В строке может быть больше колечество слешей, но мне надо чтоб регулярка содержала правило: брать текст только от 1 слеша до 3го.
Если стандартными кубиками, без регулярок, то можно еще так:

79595
 
  • Спасибо
Реакции: PussyM

dohrelion

Client
Регистрация
22.03.2018
Сообщения
130
Благодарностей
42
Баллы
28
string text = "text/21279811/0/text/text/text/text"; return string.Join("/", text.Split('/').Range("1-2"));
отличный код, прям то что надо.
а можно так сделать что бы отсчет начинался от последнего слеша ? А то слешей в строке может быть сколько угодно, а значение надо брать допустим второе с конца строки
 

Alexmd

Client
Регистрация
10.12.2018
Сообщения
1 021
Благодарностей
1 431
Баллы
113
отличный код, прям то что надо.
а можно так сделать что бы отсчет начинался от последнего слеша ? А то слешей в строке может быть сколько угодно, а значение надо брать допустим второе с конца строки
C#:
string text = "text/text/text/text/text/21279811/0";
string[] ar = text.Split('/');
return string.Join("/", ar.Range($"{ar.Length-2}-end"));
 
  • Спасибо
Реакции: dohrelion

dohrelion

Client
Регистрация
22.03.2018
Сообщения
130
Благодарностей
42
Баллы
28

igoreff

Client
Регистрация
24.02.2011
Сообщения
222
Благодарностей
37
Баллы
28
Подскажите плиз, как взять из текста, только слова начинающиеся с заглавной буквы, текст на русском языке. Весь текст разбит построчно.
 

Sergodjan

Administrator
Команда форума
Регистрация
05.09.2012
Сообщения
22 450
Благодарностей
10 009
Баллы
113
Подскажите плиз, как взять из текста, только слова начинающиеся с заглавной буквы, текст на русском языке. Весь текст разбит построчно.
Регулярка: [А-ЯЁ]\w+

81093


PS: Можно еще чуть улучшить регулярку, чтобы не брала части слова из середины слова: \b[А-ЯЁ]\w+
 
Последнее редактирование:

igoreff

Client
Регистрация
24.02.2011
Сообщения
222
Благодарностей
37
Баллы
28
Спасибо за регулярку. Еще одна проблемка, теперь нужно наоборот удалить все слова начинающиеся с прописных букв?
 

Sergodjan

Administrator
Команда форума
Регистрация
05.09.2012
Сообщения
22 450
Благодарностей
10 009
Баллы
113
Спасибо за регулярку. Еще одна проблемка, теперь нужно наоборот удалить все слова начинающиеся с прописных букв?
Та же самая регулярка.
Через действие Обработка текста - Замена (на пустоту).

81101
 
  • Спасибо
Реакции: ильяsffse и igoreff

Astraport

Client
Регистрация
01.05.2015
Сообщения
5 067
Благодарностей
4 582
Баллы
113
Какой регуляркой можно удалить все ссылки с текста? Даже такие: website.tld/page, www.website.tld, где нет http.
Пробовал разные варианты, но что-то не чистит, где-то нормальные куски текста удаляет.
 

Sergodjan

Administrator
Команда форума
Регистрация
05.09.2012
Сообщения
22 450
Благодарностей
10 009
Баллы
113
Какой регуляркой можно удалить все ссылки с текста? Даже такие: website.tld/page, www.website.tld, где нет http.
Пробовал разные варианты, но что-то не чистит, где-то нормальные куски текста удаляет.
Можно попробовать такую: (http(s|)://|)(?:[-a-z0-9@:%_\+~.#=]{2,256}\.)?([-a-z0-9@:%_\+~#=]*)\.[a-z]{2,6}\b(?:[-a-z0-9@:%_\+.~#?&\/\/=]*)

Тема-первоисточник здесь: https://zennolab.com/discussion/threads/reguljarka-dlja-parsinga-domenov.48047/

81344
 
  • Спасибо
Реакции: Astraport

systema

Client
Регистрация
25.07.2013
Сообщения
174
Благодарностей
64
Баллы
28
Подскажите регулярку для удаления даты в таком формате
Mar 12, 2021
Sep 4, 2016
Nov 4, 2018
Jul 18, 2019

Сообразил, вроде работает
[A-Z,a-z]{3}\s\d,\s\d\d\d\d|[A-Z,a-z]{3}\s\d\d,\s\d\d\d\d
 
Последнее редактирование:

slavyn8213

Client
Регистрация
28.10.2018
Сообщения
261
Благодарностей
60
Баллы
28
решено
 
Последнее редактирование:

kolbassay

Client
Регистрация
30.10.2014
Сообщения
45
Благодарностей
16
Баллы
8
Добрый день)

помогите составить регулярку:

есть строка:
"Бла-бла бла бла тонер с коллагеном, 150мл"

нужно получить "150" , "запятая" не всегда есть.

получается: {пробел}150{мл}

у меня вот что получилось: (^\s*).*?(?=мл) не работает ((
 

Sergodjan

Administrator
Команда форума
Регистрация
05.09.2012
Сообщения
22 450
Благодарностей
10 009
Баллы
113
есть строка:
"Бла-бла бла бла тонер с коллагеном, 150мл"

нужно получить "150" , "запятая" не всегда есть.

получается: {пробел}150{мл}

у меня вот что получилось: (^\s*).*?(?=мл) не работает ((
Попробуйте так: [^\s]+(?=мл)
 
  • Спасибо
Реакции: kolbassay

Hannes

Client
Регистрация
03.02.2016
Сообщения
540
Благодарностей
278
Баллы
63
Здравствуйте! Подскажите, пожалуйста, как очистить текст от знаков и цифр, оставив только текст и пробеллы?

Пример текста
C#:
 HOLIDAY INN 123
#ТЕСТ
D C GROUP, INC
HARSTAD INC DON
пробовал сам составить, лучшее, что получилось это "\w+". Но берёт только первое слово, а нужно всю строку.
 

Sergodjan

Administrator
Команда форума
Регистрация
05.09.2012
Сообщения
22 450
Благодарностей
10 009
Баллы
113
  • Спасибо
Реакции: nicanil и Hannes

Hannes

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

TopFlow

Client
Регистрация
24.06.2020
Сообщения
59
Благодарностей
12
Баллы
8
Коллеги подскажите пожалуйста как из текста вырвать адреса, которые всегда начинается с "0x" затем 40 любых значений и заканчиваются всегда по разному, то "," то перенос строки то знак "<" вообщем статичной концовки как таковой нет...
 

nicanil

Client
Регистрация
06.03.2016
Сообщения
2 247
Благодарностей
1 836
Баллы
113
Коллеги подскажите пожалуйста как из текста вырвать адреса, которые всегда начинается с "0x" затем 40 любых значений и заканчиваются всегда по разному, то "," то перенос строки то знак "<" вообщем статичной концовки как таковой нет...
0x.{40}
 
  • Спасибо
Реакции: TopFlow

Jufel

Client
Регистрация
12.06.2018
Сообщения
1 542
Благодарностей
1 074
Баллы
113
Боги регекса, подскажите с регуляркой.
Кусок исходного текста:
Код:
(12345/2016);
(67890/2017);
(9(8(9(9(4(86345635783829733466202/52/////22222000000111111887887);)))))
(54321/2018);
Необходимо взять данные вот такого формата 12345/2016 - в данном примере их будет 3 штуки, составил регулярку
Код:
\([^)]*\);
Но она так же хватает и третью строку (длинная), которую необходимо отсечь.
 

Alexmd

Client
Регистрация
10.12.2018
Сообщения
1 021
Благодарностей
1 431
Баллы
113
Боги регекса, подскажите с регуляркой.
Кусок исходного текста:
Код:
(12345/2016);
(67890/2017);
(9(8(9(9(4(86345635783829733466202/52/////22222000000111111887887);)))))
(54321/2018);
Необходимо взять данные вот такого формата 12345/2016 - в данном примере их будет 3 штуки, составил регулярку
Код:
\([^)]*\);
Но она так же хватает и третью строку (длинная), которую необходимо отсечь.
\(\d{5}\/\d{4}\);.*
1633973557172.png
 
  • Спасибо
Реакции: udder и Jufel

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