Last active
November 11, 2024 10:14
-
-
Save melnikovslava2010/585dc51bbfbea894849c011a38bd4f5d to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Добавить в начале строки Найти ^ Заменить 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
Автор привет) Пользуюсь этой страницей лет так 5 точно, шикарнейшая штука, в закрепленных постоянно!
Предлагаю дополнить куском :
(?!string) — где string это строка которую необходимо исключить из поиска, всё что не string найдёт