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

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

Работает хорошо в NP++
 
  • Спасибо
Реакции: evgen_po
Огромное спасибо
я ваш должник
 
Для некоторых вариантов номеров телефонов
Код:
Развернуть Свернуть Копировать
(\+\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
кто как это называет
кто то кракозябры кто то бинарными символами кто то кодеровкой :-)
но главное это то что [\x00-\x1F\x7F] решает эту беду
 
Регулярка из первого поста не правильно работает

Email:
Код:
Развернуть Свернуть Копировать
[\.\-_A-Za-z0-9]+?@[\.\-A-Za-z0-9]+?[\.A-Za-z0-9]{2,}


CL9Fk0k.png
 
  • Спасибо
Реакции: CSS
Код:
Развернуть Свернуть Копировать
[\.\-_A-Za-z0-9]+?@[\.\-A-Za-z0-9]+[\.A-Za-z0-9]{2,}
 
  • Спасибо
Реакции: alekwuy и CSS
Подскажите, как составить регулярное выражение, чтобы из текста брались только русские предложения с пробелами и точкой в конце предложения?
 
Подскажите, как составить регулярное выражение, чтобы из текста брались только русские предложения с пробелами и точкой в конце предложения?
[а-яА-ЯёЁ\ ]+?\.
Как то так.
 
  • Спасибо
Реакции: CSS
Думаю, условие неполное - скорее всего, ещё нужно учесть цифры и знаки препинания.
 
Спасибо всем, кто откликнулся .
Вот возникла еще проблема. В переменной есть 8 300 руб. Хочу убрать руб. Прописываю в redex [0-9] В опциях взять первое. В результате остается одна цифра 8 . Как быть? Все перепробовал. Получается надо выбрать в опциях "все" создать список, из него взять строчку, потом с ней работать ? Или тут виноват пробел? Кто подскажет , как написать правильно регулярку?
 
операции с текстом - замена
заменить \D
на пустоту
 
  • Спасибо
Реакции: Sputnik
Спасибо всем, кто откликнулся .
Вот возникла еще проблема. В переменной есть 8 300 руб. Хочу убрать руб. Прописываю в redex [0-9] В опциях взять первое. В результате остается одна цифра 8 . Как быть? Все перепробовал. Получается надо выбрать в опциях "все" создать список, из него взять строчку, потом с ней работать ? Или тут виноват пробел? Кто подскажет , как написать правильно регулярку?
Rostonix прав, но вот на всякий вариант для одного экшена. Не знаю, везде ли в шаблоне имеются пробелы, отделяющие разряды, поэтому держи более универсальный вариант, который парсит числа до 999 млрд.:
Код:
Развернуть Свернуть Копировать
\d+\D*\d*?\D*\d*?\D*\d*?(?=\D*руб)
Как расширить диапазон в случае необходимости, думаю, разберёшься по аналогии.
 
Rostonix прав, но вот на всякий вариант для одного экшена.

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

Слегка не точно.
38b840d17fa5d61c11c488061ce7e0c9.png
 
  • Спасибо
Реакции: Sputnik и workoles
Слегка не точно.
Да, действительно. Пришлось тоже открыть конструктор)) И теперь регулярка парсит любые числа без ограничений по разрядам:
Код:
Развернуть Свернуть Копировать
\d+[\s\d]*?(?=\s*руб)
 
  • Спасибо
Реакции: Sputnik
Коллеги, вопрос - нужно выражение, для замены символов, выраженных в коде, на их значения. Например, точка в ссылке выглядит, как %3A, слэш, как %2F
Понимаю, что можно выкрутиться заменой, но это не кошерно и ресурсоемко, когда у тебя сотни значений.
 
Коллеги, вопрос - нужно выражение, для замены символов, выраженных в коде, на их значения. Например, точка в ссылке выглядит, как %3A, слэш, как %2F
Понимаю, что можно выкрутиться заменой, но это не кошерно и ресурсоемко, когда у тебя сотни значений.
для этого лучше воспользоваться функцией urldecode
 
для этого лучше воспользоваться функцией urldecode
Если я все правильно понимаю, ее все равно применять уже к значениям списка? Если да - сильно ресурсоемко и долго... Ее бы применить непосредственно к результатам регулярного выражения..
 
Если я все правильно понимаю, ее все равно применять уже к значениям списка? Если да - сильно ресурсоемко и долго... Ее бы применить непосредственно к результатам регулярного выражения..
Ну изначально я имел ввиду urldecode кода с переменной, сделать можно C# сниппетом (для работы требуется подключение System.Web)
Код:
Развернуть Свернуть Копировать
string input = project.Variables["string"].Value;
return System.Web.HttpUtility.UrlDecode(input);
 
return System.Web.HttpUtility.UrlDecode(project.Variables["string"].Value);
 
т.е. решение одно - выводить каждое значение списка в переменную, обрабатывать значение переменной, перейти к следующему значению списка? Сделать с использованием регулярных выражений (замена текста на другой) - невозможно?
 
Страные вы иногда люди, сначала спрашиваете одно и пишите что так фуфловоделать Понимаю, что можно выкрутиться заменой, но это не кошерно и ресурсоемко, когда у тебя сотни значений. Когда предостовляют решение в одну две строки вы обратное просите, этот код заменит в милионом тексте все твои иероглифы за один раз, что тебе конкретно надо ты яснее объясни
 
Страные вы иногда люди, сначала спрашиваете одно и пишите что так фуфловоделать Понимаю, что можно выкрутиться заменой, но это не кошерно и ресурсоемко, когда у тебя сотни значений. Когда предостовляют решение в одну две строки вы обратное просите, этот код заменит в милионом тексте все твои иероглифы за один раз, что тебе конкретно надо ты яснее объясни
Сори, значит не догнал. Пока разбираюсь с возможностями на триал версии, туплю с терминами и функционалом, не смотря на то, что пересмотрел кучу видео курсов....
Можно чуть подробнее алгоритм действий?
1. Беру Дом, складываю в список
2. С# - код, туда вставляю return System.Web.HttpUtility.UrlDecode(project.Variables["string"].Value);
..?
 
т.е. решение одно - выводить каждое значение списка в переменную, обрабатывать значение переменной, перейти к следующему значению списка? Сделать с использованием регулярных выражений (замена текста на другой) - невозможно?
для замены текста же аналогично нужно брать текст со списка в переменную, да и изобретение велосипеда еще то получится. В данном случае или использовать решение выше или обрабатывать текст до попадания в список если это возможно, или брать все строки с файла привьязаного к списку в переменную и отрабатывать примером выше.
 

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