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

Hannes

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

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

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

 

Sergodjan

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

Roman48

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

Hannes

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

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

bizzon

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

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

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

PussyM

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

text/21279811/0/text
 

Sergodjan

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

PussyM

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

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

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

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

Alexmd

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

Sergodjan

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

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

dohrelion

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

Alexmd

Client
Регистрация
10.12.2018
Сообщения
1 022
Благодарностей
1 424
Баллы
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
Благодарностей
38
Баллы
28

igoreff

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

Sergodjan

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

81093


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

igoreff

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

Sergodjan

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

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

Astraport

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

Sergodjan

Administrator
Команда форума
Регистрация
05.09.2012
Сообщения
20 407
Благодарностей
9 116
Баллы
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
Сообщения
247
Благодарностей
58
Баллы
28
решено
 
Последнее редактирование:

kolbassay

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

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

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

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

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

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

Sergodjan

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

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

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

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

Hannes

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

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

Sergodjan

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

Hannes

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

TopFlow

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

nicanil

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

Zedx

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

Alexmd

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

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