Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Star 31 You must be signed in to star a gist
  • Fork 11 You must be signed in to fork a gist
  • Save melnikovslava2010/585dc51bbfbea894849c011a38bd4f5d to your computer and use it in GitHub Desktop.
Save melnikovslava2010/585dc51bbfbea894849c011a38bd4f5d to your computer and use it in GitHub Desktop.
Добавить в начале строки Найти ^ Заменить 0;
^\W пробел в начале строки
\d{8} найти 8 цыфр подряд
^\d{4};92 найти В НАЧАЛЕ ЧЕТЫРЕХзначные числа после которы есть ;92
[^=]*$ любые символы, кроме "="
;(.*) все после ;
(\b\S+\b)(?=.*\1) повторение на строке
\d [0-9] Цифровой символ
\D [^0-9] Нецифровой символ
\s [ \f\n\r\t\v] Пробельный символ
\S [^ \f\n\r\t\v] Непробельный символ
\w [[:word:]] Буквенный или цифровой символ или знак подчёркивания
\W [^[:word:]] Любой символ, кроме буквенного или цифрового символа или знака подчёркивания
^: соответствие должно начинаться в начале строки (например, выражение @"^пр\w*" соответствует слову "привет" в строке "привет мир")
$: конец строки (например, выражение @"\w*ир$" соответствует слову "мир" в строке "привет мир", так как часть "ир" находится в самом конце)
.: знак точки определяет любой одиночный символ (например, выражение "м.р" соответствует слову "мир" или "мор")
*: предыдущий символ повторяется 0 и более раз
+: предыдущий символ повторяется 1 и более раз
?: предыдущий символ повторяется 0 или 1 раз
\s: соответствует любому пробельному символу
\S: соответствует любому символу, не являющемуся пробелом
\w: соответствует любому алфавитно-цифровому символу
\W: соответствует любому не алфавитно-цифровому символу
\d: соответствует любой десятичной цифре
\D : соответствует любому символу, не являющемуся десятичной цифрой
√  . — Точка представляет один любой символ
√  ^ — Начало строки
√  $ — Конец строки
√  \s — Пробел
√  \S — Не Пробел
√  \w — буква, цифра или подчёркивание _
√  \d — Любая цифра
√  \D — Любой символ, но не цифра
√  [0-9] — Любая цифра
√  [a-z] — Любая буква от a до z (весь латинский набор символов) в нижнем регистре
√  [A-Z] — Любая буква от a до z в ВЕРХНЕМ регистре
√  [a-zA-Z] — Любая буква от a до z в любом регистре
√  [a-Z] — То же самое
√  * — «Повторитель». Означает, что предшествующий символ может повторяться (0 или более раз)
√  .* — Абсолютно любой набор символов. Например, условие <p> .*</p> — найдет все что между тегами <p> </p>
√  (^.*$) — Любой текст между началом и концом строки
√  ([0-9][0-9]*.) — ищет любые двухзначные в данном случае цифры
√  \n\r — Ищет пустые строки. Вроде как если оставить пустым окно "Заменить" то удаляет пустые строки, но можно поставить вот это \0
√  ^\s*$ — Ищет пустые строки содержащие пробел.
√  ^[ ]*$ — Ищет пустые строки содержащие пробел.
Примеры:
Добавление знаков в начале и конце строки, абзаца
Допустим, необходимо некий текст, скопированный например из ворда, заключить в теги <p></p>
Ставим в "найти" - (^.*$) ищет соответственно начало и конец строки.
Ставим в "заменить на" - \1 и то, что нужно вставить в начало и конец строки, у нас в примере это <p></p>
Выражение будет иметь следующий вид:<p>\1</p>. Как показано на рисунке 1. В дальнейшем нет нужды в рисунках, так они будут идентичны этому, с той лишь разницей, что выражения, там будут другие.
*** Прим. Добавление круглых скобок () в поле найти, обязательно, иначе будет убирать текст.
Задача 1:
Переставить местами ФИО и Дату рождения.
Путин Владимир Владимирович 07.10.1952
Медведев Дмитрий Анатольевич 14.09.1965
Жириновский Владимир Вольфович 25.04.1946
Найти: (\w+) (\w+) (\w+) (\d+.\d+.\d+)
Заменить на: \4 \1 \2 \3
Результат 1:
07.10.1952 Путин Владимир Владимирович
14.09.1965 Медведев Дмитрий Анатольевич
25.04.1946 Жириновский Владимир Вольфович
Задача 2:
Дату рождения представить в формате ГГГГ.ММ.ДД
07.10.1952 Путин Владимир Владимирович
14.09.1965 Медведев Дмитрий Анатольевич
25.04.1946 Жириновский Владимир Вольфович
Найти: (\d+)(\.)(\d+.)(\d+) (\w+ \w+ \w+)
Заменить на: \4.\3\1 \5
Результат 2:
1952.10.07 Путин Владимир Владимирович
1965.09.14 Медведев Дмитрий Анатольевич
1946.04.25 Жириновский Владимир Вольфович
Задача 3:
Поместить содержание каждой строки в скобки
1952.10.07 Путин Владимир Владимирович
1965.09.14 Медведев Дмитрий Анатольевич
1946.04.25 Жириновский Владимир Вольфович
Найти: (^.+$)
Заменить на: \(\1\)
Результат 3:
(1952.10.07 Путин Владимир Владимирович )
(1965.09.14 Медведев Дмитрий Анатольевич )
(1946.04.25 Жириновский Владимир Вольфович )
Следует обратить внимание на пробел перед правыми скобками. Чтобы избавиться от них, предварительно необходимо удалить замыкающие пробелы в конце строки (см. Задача 4).
Задача 4:
Удалить пробелы в конце строки после последнего символа
Найти: \s+$
Заменить на: \0
Задача 5:
Удалить время в формате ММ:СС в тексте стенограммы, протокола, документа
0:31
раскрыть эту команду
0:32
в офисе сбербанка россии по адресу
0:34
город жена ноготков черкесова
0:36
мы сами с напарником оказались
Найти: (\d+\:\d+)
Заменить на: \0
Результат 5:
раскрыть эту команду
в офисе сбербанка россии по адресу
город жена ноготков черкесова
мы сами с напарником оказались
Задача 6:
Удалить или заменить Читать далее: или удалить Источник:
От «Из машины» до «Терминатор: Генезис»: «синты» и роботы наводнили нашу поп-культуру, но насколько эти кинообразы искусственного интеллекта соответствуют действительности?
Читать далее: http://www.vsedela.ru/index.php?topic=3184.msg4935#new
Когда во время пресс-конференции Обаму спросили, не имело ли места нарушение доверия между двумя странами из-за кризиса в Бразилии, Обама сказал: «Я ей полностью доверяю.
Читать далее: http://www.vsedela.ru/index.php?topic=3102.msg4935#new
Его возглавляют дирижер и художественный руководитель Теодор Куртензис и британский менеджер Марк де Моне. Эти большие ценили российской артистической сцены пришли сюда еще в начале 1990-х годов.
Читать далее: http://www.vsedela.ru/index.php?topic=3163.0
Агрессивные действия России не остались незамеченными. НАТО укрепил свои вооруженные силы в Прибалтике и Восточной Европе, отправив свои корабли в Черное море, проведя ряд военных учений и утроив численность сил быстрого реагирования до 40 тысяч.
Читать далее: http://www.vsedela.ru/index.php?topic=3163.0
Найти: Читать далее: http://.+$ или Источник: http://.+$
Заменить на: ======================== или \0
Результат 6:
От «Из машины» до «Терминатор: Генезис»: «синты» и роботы наводнили нашу поп-культуру, но насколько эти кинообразы искусственного интеллекта соответствуют действительности?
========================
Когда во время пресс-конференции Обаму спросили, не имело ли места нарушение доверия между двумя странами из-за кризиса в Бразилии, Обама сказал: «Я ей полностью доверяю.
========================
Его возглавляют дирижер и художественный руководитель Теодор Куртензис и британский менеджер Марк де Моне. Эти большие ценили российской артистической сцены пришли сюда еще в начале 1990-х годов.
========================
Агрессивные действия России не остались незамеченными. НАТО укрепил свои вооруженные силы в Прибалтике и Восточной Европе, отправив свои корабли в Черное море, проведя ряд военных учений и утроив численность сил быстрого реагирования до 40 тысяч.
========================
Чтобы понять магию, нужно разобраться в обозначениях, используемых в т.н. регулярных выражениях regex. Далее будут представлены только те из них, которые были использованы в задачах.
По мере поступления в работу новых практических задач, тема будет продолжена.
\w литера, цифра или нижнее подчёркивание _
\w+ символ + это многократный повтор, поиск найдет литеру, цифру, нижнее подчёркивание и далее все эти символы до конца строки
(\w+) в скобках заключена группа поиска. строку следует предварительно исследовать на предмет наиболее подходящих групп, в которые объеденены условия
\d цифра
\. символ «точка» ВАЖНО: строго с обратным слэшем
\- символ «дефис» ВАЖНО: строго с обратным слэшем
\+ символ «плюс» ВАЖНО: строго с обратным слэшем
\( или \) символ «левая/правая скобка» ВАЖНО: строго с обратным слэшем
\* символ «звездочка» ВАЖНО: строго с обратным слэшем
[a-zA-Z] буква латиницы в ВЕРХНЕМ и нижем регистрах
[а-яА-Я] буква кириллицы в ВЕРХНЕМ и нижем регистрах
. любой символ ВАЖНО: строго без обратного слэша
^ начало строки
$ конец строки
(^.+$) найдёт все символы, которые многократно повторяются в границах от начала до конца строки
\4 \1 \2 \3 или \1 если одно условие или \0 если замена на пустое значение порядковый номер группы т.е. условия, которые объединены в скобках
\s пробел
\s+$ пробел после последнего символа в конце строки
Синтаксис регулярных выражений
Большинство символов в регулярных выражениях представляют сами себя, за исключением группы специальных символов «[ ] \ / ^ $ . | ? * + ( ) { }». Если эти символы нужно представить в качестве символов текста, их следует экранировать обратной косой чертой «\».
Если эти спецсимволы встречаются без обратной косой черты, значит у них особенные значения в регулярных выражениях:
«^» — каретка, циркумфлекс или просто галочка. Начало строки;
«$» — знак доллара. Конец строки;
«.» — точка. Любой символ;
«*» – знак умножения, звездочка. Любое количество предыдущих символов;
«+» – плюс. 1 или более предыдущих символов;
«?» – вопросительный знак. 0 или 1 предыдущих символов;
«( )» – круглые скобки. Группировка конструкций;
«|» – вертикальная линия. Оператор «ИЛИ»;
«[ ]» – квадратные скобки. Любой из перечисленных символов, диапазон. Если первый символ в этой конструкции – «^», то массив работает наоборот – проверяемый символ не должен совпадать с тем, что перечислено в скобках;
«{ }» – фигурные скобки. Повторение символа несколько раз;
«\» – обратный слеш. Экранирование служебных символов.
Также существуют специальные метасимволы, ими можно заменить некоторые готовые конструкции:
\b — обозначает не символ, а границу между символами;
\d — цифровой символ;
\D — нецифровой символ;
\s — пробельный символ;
\S — непробельный символ;
\w — буквенный или цифровой символ или знак подчеркивания;
\W — любой символ, кроме буквенного или цифрового символа или знака подчеркивания.В
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment