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

AvitoBot

Новичок
Регистрация
27.06.2015
Сообщения
13
Благодарностей
0
Баллы
1
https://cloud.mail.ru/public/Gwfx/DvZ4kLGjT
нужно удалить все кракозяблы
пробовал заменить в регулярном выражении в нотепаде
[^а-яА-ЯёЁa-zA-Z0-9!"\#\$%&'\(\)\*\+,-\./:;<=>\?@\[\\]\^_`\{\|}~] на пробел
и так пробовал
а-я А-Я a-z A-Z 0-9 !"#$%&'()*+,-./:;<=>?@[\]^_`{|}~ на пробел
 

CSS

Client
Регистрация
22.05.2010
Сообщения
1 327
Благодарностей
663
Баллы
113
https://cloud.mail.ru/public/Gwfx/DvZ4kLGjT
нужно удалить все кракозяблы
пробовал заменить в регулярном выражении в нотепаде
[^а-яА-ЯёЁa-zA-Z0-9!"\#\$%&'\(\)\*\+,-\./:;<=>\?@\[\\]\^_`\{\|}~] на пробел
и так пробовал
а-я А-Я a-z A-Z 0-9 !"#$%&'()*+,-./:;<=>?@[\]^_`{|}~ на пробел
Нагуглил здесь
Код:
[^\x1F-\x7F]+
Работает хорошо в NP++
 
  • Спасибо
Реакции: evgen_po

AvitoBot

Новичок
Регистрация
27.06.2015
Сообщения
13
Благодарностей
0
Баллы
1
Огромное спасибо
я ваш должник
 

ssXXXss

Client
Регистрация
23.12.2014
Сообщения
7 379
Благодарностей
2 039
Баллы
113
Для некоторых вариантов номеров телефонов
Код:
(\+\d{1,2})?((\(\d{3}\))|(\-?\d{3}\-)|(\d{3}))((\d{3}\-\d{4})|(\d{3}\-\d\d\-\d\d)|(\d{7})|(\d{3}\-\d\-\d{3}))
+7-916-777-88-00
+7-916-777-8800
+47-916-777-88-00
+47-916-7778800
+47(916)777-88-00
+47(916)777-8800
+47(916)7778800
(916)777-88-00
(916)777-8800
(916)777-8-800
(916)7778800
9167778800
916-7778800
916-777-88-00
916-777-8-800
 
  • Спасибо
Реакции: nuzypeqi, Ground и CSS

AvitoBot

Новичок
Регистрация
27.06.2015
Сообщения
13
Благодарностей
0
Баллы
1

AvitoBot

Новичок
Регистрация
27.06.2015
Сообщения
13
Благодарностей
0
Баллы
1

Gfoblin

Client
Регистрация
30.05.2013
Сообщения
4 512
Благодарностей
990
Баллы
113

AvitoBot

Новичок
Регистрация
27.06.2015
Сообщения
13
Благодарностей
0
Баллы
1
кто как это называет
кто то кракозябры кто то бинарными символами кто то кодеровкой :-)
но главное это то что [\x00-\x1F\x7F] решает эту беду
 

alekwuy

Client
Регистрация
06.04.2013
Сообщения
1 631
Благодарностей
461
Баллы
83
Регулярка из первого поста не правильно работает

Email:
Код:
[\.\-_A-Za-z0-9]+?@[\.\-A-Za-z0-9]+?[\.A-Za-z0-9]{2,}

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

rostonix

Известная личность
Регистрация
23.12.2011
Сообщения
29 067
Благодарностей
5 706
Баллы
113
Код:
[\.\-_A-Za-z0-9]+?@[\.\-A-Za-z0-9]+[\.A-Za-z0-9]{2,}
 
  • Спасибо
Реакции: alekwuy и CSS

Sputnik

Client
Регистрация
23.08.2015
Сообщения
30
Благодарностей
9
Баллы
8
Подскажите, как составить регулярное выражение, чтобы из текста брались только русские предложения с пробелами и точкой в конце предложения?
 

ZennoScript

Moderator
Регистрация
04.03.2011
Сообщения
4 450
Благодарностей
1 880
Баллы
113
Подскажите, как составить регулярное выражение, чтобы из текста брались только русские предложения с пробелами и точкой в конце предложения?
[а-яА-ЯёЁ\ ]+?\.
Как то так.
 
  • Спасибо
Реакции: CSS

Sputnik

Client
Регистрация
23.08.2015
Сообщения
30
Благодарностей
9
Баллы
8

ZennoScript

Moderator
Регистрация
04.03.2011
Сообщения
4 450
Благодарностей
1 880
Баллы
113

LmPopo

Client
Регистрация
06.12.2012
Сообщения
299
Благодарностей
136
Баллы
43
Думаю, условие неполное - скорее всего, ещё нужно учесть цифры и знаки препинания.
 

Sputnik

Client
Регистрация
23.08.2015
Сообщения
30
Благодарностей
9
Баллы
8

Sputnik

Client
Регистрация
23.08.2015
Сообщения
30
Благодарностей
9
Баллы
8
Спасибо всем, кто откликнулся .
Вот возникла еще проблема. В переменной есть 8 300 руб. Хочу убрать руб. Прописываю в redex [0-9] В опциях взять первое. В результате остается одна цифра 8 . Как быть? Все перепробовал. Получается надо выбрать в опциях "все" создать список, из него взять строчку, потом с ней работать ? Или тут виноват пробел? Кто подскажет , как написать правильно регулярку?
 

rostonix

Известная личность
Регистрация
23.12.2011
Сообщения
29 067
Благодарностей
5 706
Баллы
113
операции с текстом - замена
заменить \D
на пустоту
 
  • Спасибо
Реакции: Sputnik

workoles

Client
Регистрация
02.05.2015
Сообщения
276
Благодарностей
81
Баллы
28
Спасибо всем, кто откликнулся .
Вот возникла еще проблема. В переменной есть 8 300 руб. Хочу убрать руб. Прописываю в redex [0-9] В опциях взять первое. В результате остается одна цифра 8 . Как быть? Все перепробовал. Получается надо выбрать в опциях "все" создать список, из него взять строчку, потом с ней работать ? Или тут виноват пробел? Кто подскажет , как написать правильно регулярку?
Rostonix прав, но вот на всякий вариант для одного экшена. Не знаю, везде ли в шаблоне имеются пробелы, отделяющие разряды, поэтому держи более универсальный вариант, который парсит числа до 999 млрд.:
Код:
\d+\D*\d*?\D*\d*?\D*\d*?(?=\D*руб)
Как расширить диапазон в случае необходимости, думаю, разберёшься по аналогии.
 

ZennoScript

Moderator
Регистрация
04.03.2011
Сообщения
4 450
Благодарностей
1 880
Баллы
113
Rostonix прав, но вот на всякий вариант для одного экшена.

Не знаю, везде ли в шаблоне имеются пробелы, отделяющие разряды, поэтому держи более универсальный вариант, который парсит числа до 999 млрд.:
Код:
\d+\D*\d*?\D*\d*?\D*\d*?(?=\D*руб)
Как расширить диапазон в случае необходимости, думаю, разберёшься по аналогии.
Слегка не точно.
 
  • Спасибо
Реакции: Sputnik и workoles

workoles

Client
Регистрация
02.05.2015
Сообщения
276
Благодарностей
81
Баллы
28
  • Спасибо
Реакции: Sputnik

Bullet

Client
Регистрация
16.12.2015
Сообщения
186
Благодарностей
19
Баллы
18
Коллеги, вопрос - нужно выражение, для замены символов, выраженных в коде, на их значения. Например, точка в ссылке выглядит, как %3A, слэш, как %2F
Понимаю, что можно выкрутиться заменой, но это не кошерно и ресурсоемко, когда у тебя сотни значений.
 

Rampage

Client
Регистрация
14.11.2013
Сообщения
36
Благодарностей
8
Баллы
8
Коллеги, вопрос - нужно выражение, для замены символов, выраженных в коде, на их значения. Например, точка в ссылке выглядит, как %3A, слэш, как %2F
Понимаю, что можно выкрутиться заменой, но это не кошерно и ресурсоемко, когда у тебя сотни значений.
для этого лучше воспользоваться функцией urldecode
 

Bullet

Client
Регистрация
16.12.2015
Сообщения
186
Благодарностей
19
Баллы
18
для этого лучше воспользоваться функцией urldecode
Если я все правильно понимаю, ее все равно применять уже к значениям списка? Если да - сильно ресурсоемко и долго... Ее бы применить непосредственно к результатам регулярного выражения..
 

Rampage

Client
Регистрация
14.11.2013
Сообщения
36
Благодарностей
8
Баллы
8
Если я все правильно понимаю, ее все равно применять уже к значениям списка? Если да - сильно ресурсоемко и долго... Ее бы применить непосредственно к результатам регулярного выражения..
Ну изначально я имел ввиду urldecode кода с переменной, сделать можно C# сниппетом (для работы требуется подключение System.Web)
Код:
string input = project.Variables["string"].Value;
return System.Web.HttpUtility.UrlDecode(input);
 

ssXXXss

Client
Регистрация
23.12.2014
Сообщения
7 379
Благодарностей
2 039
Баллы
113
return System.Web.HttpUtility.UrlDecode(project.Variables["string"].Value);
 

Bullet

Client
Регистрация
16.12.2015
Сообщения
186
Благодарностей
19
Баллы
18
т.е. решение одно - выводить каждое значение списка в переменную, обрабатывать значение переменной, перейти к следующему значению списка? Сделать с использованием регулярных выражений (замена текста на другой) - невозможно?
 

ssXXXss

Client
Регистрация
23.12.2014
Сообщения
7 379
Благодарностей
2 039
Баллы
113
Страные вы иногда люди, сначала спрашиваете одно и пишите что так фуфловоделать Понимаю, что можно выкрутиться заменой, но это не кошерно и ресурсоемко, когда у тебя сотни значений. Когда предостовляют решение в одну две строки вы обратное просите, этот код заменит в милионом тексте все твои иероглифы за один раз, что тебе конкретно надо ты яснее объясни
 

Bullet

Client
Регистрация
16.12.2015
Сообщения
186
Благодарностей
19
Баллы
18
Страные вы иногда люди, сначала спрашиваете одно и пишите что так фуфловоделать Понимаю, что можно выкрутиться заменой, но это не кошерно и ресурсоемко, когда у тебя сотни значений. Когда предостовляют решение в одну две строки вы обратное просите, этот код заменит в милионом тексте все твои иероглифы за один раз, что тебе конкретно надо ты яснее объясни
Сори, значит не догнал. Пока разбираюсь с возможностями на триал версии, туплю с терминами и функционалом, не смотря на то, что пересмотрел кучу видео курсов....
Можно чуть подробнее алгоритм действий?
1. Беру Дом, складываю в список
2. С# - код, туда вставляю return System.Web.HttpUtility.UrlDecode(project.Variables["string"].Value);
..?
 

Rampage

Client
Регистрация
14.11.2013
Сообщения
36
Благодарностей
8
Баллы
8
т.е. решение одно - выводить каждое значение списка в переменную, обрабатывать значение переменной, перейти к следующему значению списка? Сделать с использованием регулярных выражений (замена текста на другой) - невозможно?
для замены текста же аналогично нужно брать текст со списка в переменную, да и изобретение велосипеда еще то получится. В данном случае или использовать решение выше или обрабатывать текст до попадания в список если это возможно, или брать все строки с файла привьязаного к списку в переменную и отрабатывать примером выше.
 

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