Шаблон объемная цифра 1: Как сделать цифры из салфеток своими руками

Содержание

Объемная цифра 8 для праздников и фотосессий. Часть вторая. Украшаем в виде единорожки. | Радость Творчества

Всех приветствую!

Недавно я начала делать объемную цифру «8» и рассказала подробно как можно сделать основу из картона. Если вам интересна эта публикация, то ссылку на нее я оставлю в конце этой статьи.

Сегодня я расскажу как оформила свою восьмерку и что получилось в итоге.

С дочкой мы обговаривали несколько вариантов цифры и она выбрала цифру — единорожку. Поэтому наша объемная цифра будет украшена в виде единорога из мультфильма.

Основу я обклеила гофрированной бумагой белого цвета.

объемная цифра, цифра 8 своими руками

объемная цифра, цифра 8 своими руками

Сначала приклеиваю одну сторону восьмерки на гофрированную бумагу. Я пользуюсь горячим клеем, потому что так удобнее и быстрее. Постепенно промазываю края заготовки, затем прикладываю гофрированную бумагу.

объемная цифра 8 своими руками.

объемная цифра 8 своими руками.

цифра 8 для праздников и фотосессий своими руками пошагово

цифра 8 для праздников и фотосессий своими руками пошагово

Затем аккуратно вырезаю по контуру, оставляя 1-2 мм в запасе. Таким же образом приклеиваю вторую сторону и вырезаю.

объемная цифра 8 , мастер класс, фото

объемная цифра 8 , мастер класс, фото

Осталось закрыть боковые стороны заготовки. Для этого отрезаем полосу из гофрированной бумаги шириной 8,5 сантиметров. Можно нарезать несколько полос для удобства и приклеить их встык.

объемная цифра из картона сделать пошагово

объемная цифра из картона сделать пошагово

Постепенно приклеиваем бумагу со всех сторон, тщательно промазывая края.

объемная цифра 8 своими руками пошагово фото

объемная цифра 8 своими руками пошагово фото

Не забываем проклеить внутренние круги восьмерки.

цифра 8 своими руками мастер класс

цифра 8 своими руками мастер класс

Основа для украшения готова. Теперь изготовим элементы украшения единорога.

Ушки я нарисовала на плотном картоне и обклеила блестящей самоклеющейся бумагой из магазина фикс прайс. Вот мой шаблон:

единорог ушки шаблон фото

единорог ушки шаблон фото

А вот готовые ушки:

уши единорога как сделать фото

уши единорога как сделать фото

Рог сделала из плотного картона. Сначала вырезала конус из формата А4 с круглым основанием.

как сделать рог единорога из картона пошагово фото

как сделать рог единорога из картона пошагово фото

Затем свернула его и приклеила.

рог единорога из картона сделать своими руками фото

рог единорога из картона сделать своими руками фото

рог единорога своими руками пошагово фото

рог единорога своими руками пошагово фото

Обклеила готовый рог самоклеющейся золотой бумагой и добавила узкую ленточку ярко-розового цвета.

цифра единорожка сделать пошагово фото мастер класс

цифра единорожка сделать пошагово фото мастер класс

Приклеила на верхнюю часть цифры рог и уши единорожки.

цифра 8 единорожка своими руками пошагово фото

цифра 8 единорожка своими руками пошагово фото

Для изготовления гривы использовала разноцветную гофрированную бумагу которая нашлась дома.

гофрированная бумага поделки фото

гофрированная бумага поделки фото

Нарезала полоски примерно 2 см шириной и длиной 40-45 см.

как сделать гриву единорожке из бумаги пошагово фото

как сделать гриву единорожке из бумаги пошагово фото

Слегка вытянула их по длине и закрутила края на палец, чтобы сформировать локоны. Приклеила горячим клеем располагая полоски в произвольном порядке.

Полоски укладывала примерно как на фото, чтобы грива спускалась немного назад, а не прямо.

как сделать цифру единорожку своими руками фото

как сделать цифру единорожку своими руками фото

Из этих же полосок гофрированной бумаги сформировала цветочки. Сначала скручивала и подклевала серединку.

Затем перекручивала бумагу и формировала лепестки. Каждый лепесток подклеивала капелькой клея. Такие цветы я придумала по ходу работы сама, раньше нигде такие не видела.

гофрированная бумага, цветы простые, фото

гофрированная бумага, цветы простые, фото

Цветочки приклеила вокруг рога.

цифра единорожка пошагово фото

цифра единорожка пошагово фото

Добавила еще несколько цветочков в центр гривы.

объемная цифра единорожка на детский день рождения фото пошагово

объемная цифра единорожка на детский день рождения фото пошагово

Глазки и рот нарисовала на глянцевой цветной бумаге и приклеила по бокам. Также вырезала несколько блестящих разноцветных звездочек из самоклеющейся цветной бумаги.

цифра 8 единорожка мастер класс своими руками фото

цифра 8 единорожка мастер класс своими руками фото

Получилась цифра очень похожая на первоначальную задумку в виде Единорога из мультфильма.

Меня смущал только неаккуратный край внутренних кругов на основе и я решила его обклеить узкой тесьмой розового цвета.

Это был последний шаг в изготовлении цифры «8» для дня рождения моей дочки. Итог моей работы вы увидите на следующем фото.

Надеюсь мой опыт и идея оформления объемной цифры кому-то пригодится.

Если понравилась публикация — ставьте Лайк. Если вам интересно творчество в целом, а также оригинальные идеи и мастер классы — подписывайтесь на мой канал и делитесь с друзьями в соцсетях.

Спасибо за внимание!

Возможно вам будет интересно:

Объемная цифра 8 для праздников и фотосессий. Часть 1. Делаем основу

Как украсить объемные цифры для фотосессий и праздников. Примеры из личного опыта

Украшаем комнату бабочками из бумаги на детский день рождения

Корона диадема из фоамирана для девочки. Шаблоны и видео мастер класс

Мужской букет своими руками с колбасой и коньяком. Пошаговый мастер класс с фото

делаем вместе. Лучшие идеи с подробным описанием

Цифра из гофрированной бумаги станет прекрасным и оригинальным украшением, если вы готовитесь к празднику или хотите устроить сюрприз для близкого человека. Объемный яркие циферки вам пригодятся не только на День рождения, но на юбилей свадьбы и даже на Новый год. Своими руками вы можете оформить самую запоминающуюся вечеринку для ваших друзей, а все, что для этого надо – разноцветные листы гофробумаги, купить которую можно в любом магазине с товарами для творчества или канцтоварах.

 


Цифра на годик из гофрированной бумаги

 


Цифра 1 из гофрированной бумаги станет украшением вашего праздника, а еще станет отличным фоном для семейных фотографий, которые сохранят память об этом дне надолго. Кусочки гофры подойдут, чтобы украсить картонную заготовку, а готовую поделку можно прикрепить к стене.

В данном случае мы будем делать плоскую поделку, поэтому понадобится плотный картон, к примеру, можно взять старую коробку от бытовой техники, нарисовать на листе контур единицы и аккуратно вырезать его.

 


Единицу нарисовать очень просто, используя карандаш и линейку, но если вы сомневаетесь, то можно использовать шаблон, который надо распечатать и приклеить на картон, а после – вырезать острыми ножницами.

Для поделки можно использовать гофру одного цвета или нескольких, тогда и фигура получится яркой. Обычно выбирают такой цвет, чтобы он сочетался с декором праздника, а может даже с нарядом именинника.

В данном случае для выполнения цифры из гофрированной бумаги своими руками мы будем использовать технику торцевания, поэтому нам необходимо гофру нарезать на небольшие квадраты. Размер квадрата будет зависеть от того, насколько «пушистым» вы хотите сделать главное украшение праздника. Например, у нас будет квадрат со стороной 5 см. Для начала лучше нарезать листы на полосы, затем сложить их вместе и нарезать квадратами.

 


Для удобства клей ПВА необходимо налить в блюдце, и взять карандаш для работы, мы будем использовать тупой конец карандаша. Предварительно саму картонную основу можно также обклеить полосками гофры.

Теперь можно приступать к декорированию, в данном случае приклеивать бумажные квадратики мы будем только с одной стороны, но в случае с объемной цифрой декорировать также следует и боковые планки. Торцевание предполагает приклеивание к основе только середины каждого квадрата. Элементы приклеиваются близко друг к другу, поэтому и получается пушистое декорирование.

Тупой конец карандаша мы прикладываем к середине бумажного квадрата, а концы обкручиваем вокруг карандаша, так приклеивать центр к основе будет удобнее. После следует обмакнуть центр листика в клей и приставить его к основе. Придерживать надо несколько секунд, чтобы клей зафиксировался, после карандаш можно аккуратно убрать, и таким же образом приклеить следующий квадратик, как можно ближе к предыдущему, чтобы кончики квадратов торчали вверх.

Постепенно надо задекорировать всю поверхность картонного шаблона. Если вы хотите подвесить готовое украшение к стене, то сверху надо приделать петельку. А чтобы поставить ее на пол, сзади необходимо сделать подставку, чтобы поделка была устойчивой.

 


Цифра 1 из гофрированной бумаги

 


Плоская цифра на годик из гофрированной бумаги в технике торцевание получается пушистой, но есть и другой способ украсить ее. Опять же вначале нам необходимо вырезать картонный шаблон. Использовать можно несколько слоев картона, чтобы шаблон получился достаточно плотным и не сгибался.

В Мексике практически на всех детских праздниках присутствует пиньята, это объемная игрушка, выполненная с картона и украшенная бумажными полосочками. В такой же технике будет украшена и наша

цифра 1 из гофрированной бумаги своими руками.

По сравнению с торцеванием, украшение бумажными полосочками выполняется быстрее. Когда мы вырежем шаблон, его надо обклеить полосами гофры. Желательно использовать бумагу разных цветов, чтобы поделка получилась яркой.

 


Сначала листы гофры необходимо нарезать на полосы шириною около 5 см, а затем каждую полоску надрезать перпендикулярно, чтобы получилась «травка». Когда вы будете декорировать шаблон, начинать необходимо с нижней части. Клеем надо смазать только ту часть бумажной полоски, которая не надрезана «травкой». Каждую следующую полосу надо приклеивать так, чтобы бахрома скрывала приклеенную часть предыдущей полосочки.

Таким образом, обклеивается вся поверхность шаблона, а когда клей высохнет, можно оформлять праздник для вашего малыша. А если вы отправляетесь на первый День рождения к крестнице, то подготовьте такой подарок своими руками из бумаги.

 


Объемная цифра из гофрированной бумаги

 


А если вы знаете, как делать розы своими руками, то для вас будет не проблемой украсить своими руками и неповторимый детский праздник. Объемная цифра из гофрированная бумаги требует предварительной подготовки шаблона, ведь нам надо сделать объемную заготовку, которая, к тому же, должна быть и достаточно прочной.

Самый простой вариант – выполнить заготовку, используя картон, в данном случае пригодиться большая картонная коробка от бытовой техники. Если же под рукой у вас нет такой коробку, обратитесь за помощью в ближайший магазин продуктов или супермаркет, продавцы наверняка не откажут вам в помощи и отдадут со склада одну коробку. Ее надо будет разобрать на плоские листы: боковые широкие стороны пойдут на шаблоны цифр, а боковые планки можно вырезать с оставшегося картона.

 


Чтобы сформировать основу вам также понадобится бумажный скотч, ведь только на бумажный скотч затем вы сможете приклеивать гофрированные цветочки.

Вам необходимо вырезать две одинаковые заготовки-цифры и широкие полосы, которыми мы оформим боковые планки объемной фигуры. Бумажный скотч вам поможет сформировать объемную заготовку, им следует аккуратно склеить швы, а для большей прочности можно обклеить скотчем по кругу.

Таким способом можно сделать любую цифру, а для ее украшения использовать пушистые бумажные помпоны или цветы из гофрированной бумаги своими руками.

Кроме того, заготовку можно выполнить из пенопласта, особенно, если вы недавно покупали крупную бытовую технику, и у вас остался пенопласт от упаковки. Такая основа получится достаточно прочной. Когда готова основа, можно приступать к творческому процессу,

как сделать цифру из гофрированной бумаги.

 


Цифра из гофрированной бумаги

 


Цифра на День рождения из гофрированной бумаги или салфеток получится пушистой, яркой, объемной. Такое украшение станет центром всего праздника, а еще помещение можно украсить объемными помпонами, воздушными шарами. Кроме цифр можно сделать украшения в виде большого шара, который также оформляется маленькими гофрированными цветочками. Как видите, такой простой материал как гофра дает огромный простор для творчества, в частности, поможет вам украсить дом к празднику, ведь День рождения вашего ребенка должно пройти незабываемо. А если вы отправляетесь на праздник к подруге, подготовьте для нее конфетный букет из тюльпанов.

 


Цифры из цветов гофрированной бумаги иногда используются и для оформления праздников для взрослых, конечно, не стоит напоминать имениннице о ее возрасте, но в годовщину свадьбы ваших родителей вы можете устроить им настоящий сюрприз.

В этом случае надо будет сделать отдельно две цифры, используя нежные оттенки бумаги. Для украшения стола можно использовать букеты из бумаги, а отдельные цветочки – для оформления подарочной упаковки подарков.

Маленькие цветочки помогут вам задекорировать объемную заготовку. Есть несколько возможных вариантов, как сделать просто такие цветочки, не беспокойтесь, даже новичок справиться с этой работой.

 


Объемная основа должна быть плотно заполнена миниатюрными цветочками, чтобы через них не просматривалась картонная заготовка, поэтому существует два правила декорирования. Во-первых, цветочки должны быть пушистыми и объемными, а, во-вторых, приклеивать их следует близко друг к другу. Чтобы быть уверенной, что поделка получиться красивой, можно предварительно обклеить саму картонную заготовку бумагой в тон цветочкам.

Первым делом мы рассмотрим самый простой вариант, как сделать пушистый цветочек для украшения картонной заготовки. Для этого нам понадобиться, конечно, главный материал – гофра, а также дополнительные инструменты – ножницы и степлер. Нам необходимо будет нарезать множество кружочков одинакового диаметра, поэтому на картоне можно сделать шаблон, к примеру, обвести стакан и вырезать его.

 


Гофру легко разрезать, даже если она сложена в несколько слоев, поэтому сначала мы нарежем лист на полосы. Их ширина должна быть на 0,5-1 см больше, чем диаметр круга-шаблона. Затем каждую полоску следует сложить несколько раз, чтобы в результате у нас получился многослойный квадрат. Каждый такой бумажный квадратик по середине (пересечение диагоналей) надо сколоть степлером. Далее на этом квадрате надо обвести нашу заготовку-круг и вырезать его по контуру, при этом скоба степлера должна располагаться по середине получившегося круга. Когда кружок будет готов, надо поднимать слой за слоем с самого верхнего, и аккуратно приминать их по направлению в центр. У нас получиться пушистый цветочек, который можно приклеить на основу.

 


Как сделать цифру из гофрированной бумаги

 


Объемная цифра 1 на годик из гофрированной бумаги может быть украшена пушистыми «хризантемами». Для их выполнения гофру следует также нарезать на полосы, затем сложить в несколько слоев и нарезать травкой, не дорезая до конца полосы с одного края. «Травка» должна быть по всей длине полосы, но получившеюся бахрому следует немного подкрутить пальцами, чтобы получились лепестки-иголочки. Осталось только скрутить полосу в плотный рулон и обвязать несколько раз ниткой. У вас получиться цветочек, у которого одна сторона будет пушистой, а вторая – плотный рулончик, который можно смазать клеем и приклеить к поверхности заготовки.

 


Используя гофрированную полосу, у которой полосы будут идти перпендикулярно длине, можно скрутить миниатюрную розочку. Для этого бумагу вновь необходимо нарезать на полоски, а у каждой полосы один край сделать волнистым, растягивая его пальчиками. Готовую полосу надо скрутить в плотный рулон и зафиксировать край нитками, обвязав рулончик несколько раз.


Карточки по английскому

Карточки для печати, разной формы и размера, с буквами, цифрами, словами и картинками с названием на английском языке, транскрипцией, произношением и переводом на русский язык. Для подготовки и проведения уроков и занятий по английскому языку.

Произношение на карточках передано при помощи транскрипционных знаков, если вы не умеете читать транскрипцию — Транскрипция

Карточки представленные на сайте находятся в формате: PDF, PNG или JPG. Если вам нужны карточки для распечатки, скачивайте pdf, этот формат лучше всего подходит для печати и позволяет сохранить указанный размер, если вам нужны обычные картинки, например, для вставки в Word, скачивайте png или jpg.

Карточки для занятий по английскому:

  1. Карточки «Время на английском»
  2. Карточки «Дни недели»
  3. Карточки «Названия месяцев»
  4. Карточки «Времена года»
  5. Карточки «Одежда»
  6. Карточки «Цвета на английском»
  7. Карточки с фруктами
  8. Карточки «Профессии на английском»
  9. Карточки «Моя семья»
  10. Распечатать карточки с транскрипцией
  11. Символы и фигуры на карточках
  12. Карточки квадратной формы с буквами.

Если вам понравились карточки, вы можете поблагодарить автора:

Карточки с буквами английского алфавита:

  1. Карточки с английскими буквами ( С картинками и словами )
  2. Карточки 9 на 10 с буквами и картинками
  3. Карточки 9 на 10 с буквами и картинками. черно-белые
  4. черно-белые карточки с буквами ( С картинками и словами )
  5. Английский алфавит на карточках ( Буквы без картинок, 5 на 5 см. )
  6. Алфавит на карточках на листе а4 ( Прописные и строчные, без картинок, 5 на 5 см. )
  7. Заглавные буквы на карточках( Заглавные без картинок, 5 на 5 см. )
  8. Буквы на карточках с произношением ( Карточки 5 на 5 см. с транскрипцией.)
  9. Карточки с буквами и произношением на листе а4 ( Карточки 5 на 5 см.)
  10. Карточки 5 на 5 гласные и согласные
  11. Карточки 5×5 см. Алфавит с произношением и словами
  12. Карточки 14×9 см. Письменные, прописные и строчные буквы
  13. Карточки 5×5 см., с алфавитом и картинками.
  14. Карточки 6×6 см., с алфавитом и картинками.
  15. Карточки 7×7 см., с алфавитом и картинками.

Карточки с английской транскрипцией:

  1. Карточки 7,5×10 см., с транскрипцией.
  2. Карточки 7,5×10 см., с транскрипцией. Страница 2.
  3. Карточки 7,5×10 см., с транскрипцией. Страница 3.
  4. Черно-белые карточки 7,5×10 см., с транскрипцией.
  5. Черно-белые карточки 7,5×10 см., с транскрипцией. Страница 2.
  6. Черно-белые карточки 7,5×10 см., с транскрипцией. Страница 3.
  7. Распечатать карточки с транскрипцией (Главная страница раздела)

Карточки «Время суток»:

  1. Карточки 7,5×10 см. «Время на английском».
  2. Карточки 7,5×10 см. «Время на английском». Страница 2
  3. Черно-белые карточки 7,5×10 см. «Время на английском». Страница 3
  4. Черно-белые карточки 7,5×10 см. «Время на английском». Страница 4
  5. Карточки 14×9 см. «Время суток».
  6. Карточки 14×9 см. «Время суток». Страница 2
  7. Черно-белые карточки 14×9 см. «Время суток». Страница 3
  8. Черно-белые карточки 14×9 см. «Время суток». Страница 4
  9. Карточки «Время на английском» (Главная страница раздела)

Карточки с названиями профессий:

  1. Цветные карточки 14×9 см., с названиями профессий
  2. Черно-белые карточки 14×9 см., с названиями профессий
  3. Цветные карточки 7,5×10 см., с названиями профессий
  4. Карточки «Профессии на английском» (Главная страница раздела)

Карточки одежда и обувь:

  1. Карточки 14×9 см. «Одежда и обувь».
  2. Черно-белые карточки 14×9 см. «Одежда и обувь».
  3. Карточки 9×10 см. «Одежда и обувь».
  4. Черно-белые карточки 9×10 см. «Одежда и обувь».
  5. Карточки 75×100 мм. «Одежда на английском».
  6. Карточки «Одежда» (Главная страница раздела.)

Карточки с цифрами:

  1. Карточки 14 на 9 см. Количественные числительные
  2. Карточки 14 на 9 см. Порядковые числительные
  3. Карточки 9 на 10 см. Десятки от 10 до 100
  4. Карточки 5 на 5 см. Числа от 1 до 100
  5. Карточки, четные и нечетные числа от 1 до 100 ( Нечетные синие, четные зеленые. )

Фигуры и символы:

  1. Математические символы на карточках
  2. Карточки с геометрическими фигурами
  3. Объемные геометрические фигуры
  • PDF — Лучше всего подходит для распечатки, при печати сохраняется указанный размер карточек. Формат листов A4.
  • PNG — Обычные картинки, можно вставлять в Word или загружать на сайт.

Скачать в формате PDF

Карточки 5×5 см. с буквами.
  1. Заглавные буквы, черно-белые. Скачать
  2. Заглавные буквы, цветные. Скачать
  3. Прописные и строчные буквы, черно-белые. Скачать
  4. Прописные и строчные буквы, цветные. Скачать
  5. Буквы с произношением и транскрипцией, черно-белые. Скачать
  6. Буквы с произношением и транскрипцией, цветные. Скачать
  7. Гласные красным цветом, согласные синим. С транскрипцией и произношением .Скачать
  8. Буквы и слова на эту букву, с транскрипцией и произношением. Разноцветные. Скачать
Карточки 5×5 см. с цифрами.
  1. Цифры от одного до ста и дроби с названием. Черно-белые. Скачать
  2. Цифры от одного до ста и дроби с названием. Разноцветные. Скачать
  3. С названием и транскрипцией, от 1 до 100. Черно-белые. Скачать
  4. С названием и транскрипцией, от 1 до 100. Цветные. Скачать
  5. С названием и транскрипцией, от 1 до 100. Серые. Скачать
  6. Карточки с нечетными числами синие, с четными зеленые. Скачать
Карточки 9×10 см. буквами.
  1. Черно-белые с буквами без картинок Скачать
  2. Цветные с буквами без картинок Скачать
  3. Черно-белые с буквами, произношением и картинками Скачать
  4. Цветные с буквами, произношением и картинками Скачать
  5. Заглавные буквы с транскрипцией и произношением, черно-белые Скачать
  6. Заглавные буквы с транскрипцией и произношением, цветные Скачать
Карточки 9×10 см. с цифрами.
  1. От одного до сто, черно-белые Скачать
  2. От одного до сто, цветные Скачать
  3. От одного до сто, четные зеленые, нечетные красные Скачать
  4. Десятки от 10 до 100. Цветные. Скачать
  5. Десятки от 10 до 100. Черно-белые. Скачать
Карточки 14×9 см. с буквами.
  1. Заглавная и строчная с транскрипцией, произношением и картинкой. Цветные Скачать
  2. Заглавная и строчная с транскрипцией, произношением и картинкой. Old version. Скачать
  3. Заглавная и строчная с транскрипцией, произношением и картинкой. Черно-белые Скачать
  4. Прописная и строчная с транскрипцией и схемой написания букв от руки. С письменными буквами. Скачать
Карточки 14×9 см. с цифрами.
  1. Количественные числительные от 1 до 10 с палочками для счета. Цветные. Скачать
  2. Порядковые числительные от 1 до 10 с палочками для счета. Цветные. Скачать
  3. Количественные числительные от 1 до 10 с зайцами для счета. Цветные. Скачать
  4. Количественные числительные от 1 до 10 с транскрипцией и переводом. Цветные. Скачать
  5. Количественные числительные от 1 до 10 с транскрипцией и переводом. Черно-белые. Скачать
Буквы на весь лист, формата A4.
  1. Заглавные буквы, контуры. Не раскрашеные. Скачать
Символы и фигуры.
  1. Карточки 9×10 см. Основные математические символы. Цветные. Скачать
  2. Карточки 9×10 см. Основные математические символы. Черно-белые. Скачать
  3. Карточки 9×10 см. Геометрические фигуры. Цветные. Скачать
  4. Карточки 9×10 см. Геометрические фигуры. Черно-белые. Скачать
  5. Карточки 9×10 см. Объемные геометрические фигуры. Цветные. Скачать
  6. Карточки 9×10 см. Объемные геометрические фигуры. Черно-белые. Скачать

Скачать в формате PNG

Карточки 5×5 см. с буквами
  1. Строчная и заглавная, без транскрипции, каждая карточка отдельная картинка. Разноцветные. Скачать
  2. Буквы с произношением и транскрипцией, цветные. Скачать
  3. Буквы с произношением и транскрипцией, цветные. На листах. Скачать
  4. Гласные красным цветом, согласные синим. С транскрипцией и произношением. Скачать
  5. Буквы и слова на эту букву, с транскрипцией и произношением. Разноцветные. Скачать
Карточки 5×5 см. с цифрами.
  1. Цветные с названием и транскрипцией, от 1 до 100. Скачать
  2. Карточки с нечетными числами синие, с четными зеленые. Скачать
Карточки 9×10 см. буквами.
  1. Прописная и строчная с транскрипцией, произношением и картинками. Черно-белые. Скачать
  2. Прописная и строчная с транскрипцией, произношением и картинками. Цветные. Скачать
Карточки 9×10 см. с цифрами.
  1. Десятки от 10 до 100. Черно-белые. Скачать
  2. Десятки от 10 до 100. Цветные. Скачать
  3. Десятки от 10 до 100. Серые. Скачать
  4. Десятки от 10 до 100. Контуры. Скачать
Карточки 14×9 см. с буквами.
  1. Заглавная и строчная с транскрипцией, произношением и картинкой. Черно-белые. Скачать
  2. Заглавная и строчная с транскрипцией, произношением и картинкой. Цветные. Скачать
  3. Прописная и строчная с транскрипцией и схемой написания букв от руки. С письменными буквами. Скачать
Карточки 14×9 см. с цифрами.
  1. Количественные числительные от 1 до 10 с палочками для счета. Цветные. Скачать
  2. Порядковые числительные от 1 до 10 с палочками для счета. Цветные. Скачать
Символы и фигуры.
  1. Карточки 9×10 см. Основные математические символы. Цветные. Скачать
  2. Карточки 9×10 см. Геометрические фигуры. Цветные. Скачать
  3. Карточки 9×10 см. Геометрические фигуры. Черно-белые. Скачать
  4. Карточки 9×10 см. Объемные геометрические фигуры. Цветные. Скачать
  5. Карточки 9×10 см. Объемные геометрические фигуры. Черно-белые. Скачать

Если вам понравились карточки, вы можете поблагодарить автора:

Руководство для начинающих по сопоставлению любого шаблона с использованием регулярных выражений в R | by Rashida Nasrin Sucky

Это проще, чем вы думаете

Регулярное выражение — это не что иное, как последовательность символов, соответствующая образцу в фрагменте текста или текстовом файле. Он используется при анализе текста во многих языках программирования. Символы регулярного выражения очень похожи во всех языках. Но функции извлечения, поиска, обнаружения и замены могут быть разными в разных языках.

В этой статье я буду использовать R. Но вы можете узнать, как использовать регулярное выражение из этой статьи, даже если вы хотите использовать какой-то другой язык. Это может показаться слишком сложным, когда вы этого не знаете. Но, как я упоминал в начале, это проще, чем вы думаете. Я постараюсь объяснить это настолько, насколько смогу. Вы можете задавать мне вопросы в разделе комментариев, если вы не поняли какую-либо часть.

Здесь мы будем учиться на практике. Я начну с самых простых идей и постепенно перейду к более сложным паттернам.$|?*+»,
«coreyms.com»,
«321-555-4321»,
«123.555.1234»,
«123*555*1234»
)

Извлечь все точки или периоды из этих текстов:

В R есть функция str_extract_all, которая извлекает все точки из этих строк. Эта функция принимает два параметра. Во-первых, тексты, представляющие интерес, и во-вторых, элемент, который необходимо извлечь.

 str_extract_all(ch, "\\.") 

Вывод:

 [[1]] 
символов (0)[[2]]
символов (0)[[3]]
[1] "."[[4]]
[1] "."[[5]]
символов(0)[[6]]
[1] "." "."[[7]]
символов(0)

Внимательно посмотрите на вывод: в третьей строке одна точка, в четвертой строке одна точка, а в шестой строке две точки

Попробуйте сами.Я буду использовать str_extract_all для всех демонстраций в этой статье, чтобы найти все это. :

  1. .] = соответствует символам Не в подставках
    14. | = Либо Или

    15. ( ) = Группа

    16. *= 0 или более

    17. + = 1 или более

    18. ? = Да или Нет

    19. {x} = Точное число

    20. {x, y} = Диапазон чисел (максимум, минимум)

    Мы продолжим обращаться к этому списку выражений при дальнейшей работе.

    Мы будем работать над каждым из них сначала индивидуально, а затем в группах.

    Начиная с основ

    Согласно приведенному выше списку, ‘\d’ улавливает цифры.

    Извлечь все цифры из ‘ch’:

     str_extract_all(ch, "\\d") 

    Вывод:

     [[1]] 
    символ(0) ]
    символов(0)[[3]]
    символов(0)[[4]]
    символов(0)[[5]]
    [1] "3" "2" "1" "5" "5" "5" "4" "3" "2" "1"[[6]]
    [1] "1" "2" "3" "5" "5" "5" "1" "2" "3" " "4"[[7]]
    [1] "1" "2" "3" "5" "5" "5" "1" "2" "3" "4"

    Первые четыре строки не имеют цифр. Последние три строки — номера телефонов.» «$» «|» «?» «*» «+»[[5]]
    [1] «c» «o» «r» «e» «y» «m» «s» «.» » c» «o» «m»[[6]]
    [1] «-» «-«[[7]]
    [1] «.» «.»[[8]]
    [1] «*» «*»

    Посмотрите, он извлек буквы, точки и другие специальные символы, но не извлек ни одной цифры.

    ‘w’ соответствует символам слова, включающим az, AZ, 0–9 и ‘_’. Давайте проверим.

     str_extract_all(ch, "\\w") 

    Вывод:

     [[1]] 
    [1] "a" "b" "c" "d" "e" "f" "g" "h ""i"[[2]]
    [1] "A" "B" "C" "D" "E" "F" "G" "H" "I"[[3]]
    [1] " T" "h" "i" "s" "i" "s" "m" "e"[[4]]
    символов(0)[[5]]
    [1] "c" "o" "r ""e" "y" "m" "s" "c" "o" "m"[[6]]
    [1] "3" "2" "1" "5" "5" "5" " 4" "3" "2" "1"[[7]]
    [1] "1" "2" "3" "5" "5" "5" "1" "2" "3" "4" [[8]]
    [1] "1" "2" "3" "5" "5" "5" "1" "2" "3" "4"

    В нем есть все, кроме точек и специальных символов.» «$» «|» «?» «*» «+»[[5]]
    [1] «.»[[6]]
    [1] «-» «-»

    Я перейду, чтобы показать ‘b’ и ‘B’ теперь. ‘b’ улавливает границу слова. Вот пример:

     st = "This is Bliss" 
    str_extract_all(st, "\\bis")

    Вывод:

     [[ 1]] 
    [1] "is"

    В строке только одно «is». Так что мы могли бы поймать его здесь. Давайте посмотрим на использование «B»

     st = "This is Bliss" 
    str_extract_all( st, "\\Bis")

    Вывод:

     [[1]] 
    [1] "is" "is"

    В строке ‘st’ есть два других ‘is’, которые не входят в границу. ’ и ‘$’, которые обозначают начало и конец строк соответственно.

    Вот пример:

     sts = c("Это я", 
    "Это мой дом",
    "Привет, мир!")

    Найти все восклицательные знаки в конце предложения.

     str_extract_all(sts, "!$") 

    Вывод:

     [[1]] 
    символов(0)[[2]]
    символов(0)[[3]]
    [1] "!"

    У нас есть только одно предложение, заканчивающееся восклицательным знаком. Если пользователи R хотят найти предложение, заканчивающееся восклицательным знаком:

     sts[str_detect(sts, "!$")] 

    Вывод:

     [1] "Привет, мир!" 

    Найдите предложения, начинающиеся с «Это».T»)]

    Результат:

     [1] "Это я" "Это мой дом" 

    ‘[]’ соответствует символам или диапазонам в нем.

    Для демонстрации приступим вернуться к ‘ch’. Извлечь все между 2 и 4.

     str_extract_all(ch, "[2-4]") 

    Вывод:

     [[1]] 
    символ(0)[[2]]
    символ(0)[[3]]
    символ(0)[[4]]
    символ(0)[[5]]
    [1] "3" "2" "4" "3" "2"[[ 6]]
    [1] "2" "3" "2" "3" "4"[[7]]
    [1] "2" "3" "2" "3" "4"

    Давайте перейдем к более крупному эксперименту

    Извлеките телефонные номера только из ‘ch’. Я объясню шаблон после того, как вы увидите вывод:

     str_extract(ch, "\\d\\d\\d.\\d\\d\\d.\\d\\d\\d\\d ") 

    Вывод:

     [1] NA NA NA 
    [4] NA "321-555-4321" "123.555.1234"
    [7] "123*555*1234"

    В приведенном выше регулярном выражении каждый ‘\\d’ означает цифру, а ‘.’ может соответствовать чему угодно между ними (посмотрите на число 1 в списке выражений в начале). Итак, мы получили цифры, затем специальный символ между ними, еще три цифры, затем снова специальные символы, затем еще 4 цифры.Таким образом, все, что соответствовало этим критериям, было извлечено.

    Регулярное выражение для указанного выше номера телефона также можно записать следующим образом.

     str_extract(ch, "\\d{3}.\\d{3}.\\d{4}") 

    Вывод:

     [1] NA NA NA 
    [4] NA "321-555 -4321" "123.555.1234"
    [7] "123*555*1234"

    Посмотрите на номер 19 списка выражений. {x} означает точное число. Здесь мы использовали {3}, что означает ровно 3 раза. ‘\\d{3}’ означает три цифры.

    Но обратите внимание, что «*» между цифрами не является обычным форматом телефонного номера. Обычно «-» или «.» могут использоваться в качестве разделителя в телефонных номерах. Правильно? Давайте сопоставим это и исключим номер телефона с «*». Потому что это может выглядеть как 10-значный номер телефона, но может и не быть номером телефона. Мы хотим придерживаться обычного формата номера телефона.

     str_extract(ch, "\\d{3}[-.]\\d{3}[-.]\\d{4}") 

    Вывод:

     [1] NA NA NA 
    [4 ]НА "321-555-4321" "123.555.1234"
    [7] NA

    Смотрите, это соответствует только обычному формату номера телефона. В этом выражении после трех цифр мы явно упомянули «[-.]», что означает, что требуется соответствие только «-» или точке (‘.’).

    Вот список телефонных номеров:

     ph = c("543-325-1278", 
    "900-123-7865",
    "421.235.9845",
    "453* 2389*4567",
    "800-565-1112",
    "361 234 4356"
    )

    Если мы используем приведенное выше выражение для этих телефонных номеров, то получится следующее:

     str_extract(ph, "\\d {3}[-. ]\\d{3}[-.]\\d{4}") 

    Вывод:

     [1] "543-325-1278" "900-123-7865" "421.235.9845" 
    [4 ] NA "800-565-1112" NA

    Смотрите! Этот формат исключает «361 234 4356». Иногда мы не используем никаких разделителей между ними, а просто используем пробел, верно? Кроме того, первая цифра номера телефона в США не 0 и не 1. Это число от 2 до 9. Все остальные цифры могут быть любыми от 0 до 9. Давайте позаботимся об этом шаблоне.

     p = "([2-9][0-9]{ 2})([- .]?)([0-9]{3})([- .])?([0-9]{4})" 
    str_extract(ph, p)

    Здесь я сохранил шаблон отдельно.

    В регулярном выражении ‘()’ используется для обозначения группы. Посмотрите на номер 15 списка выражений

    Вот разбивка приведенных выше выражений

    Первая группа была «([2–9][0–9]{2})»:

    ‘[2–9]’ представляет одну цифру от 2 до 9

    ‘[0–9]{2}’ представляет две цифры от 0 до 9

    Вторая группа была «([- .]?)»:

    ‘[-.]’ означает, что это может быть ‘-‘ или ‘.’

    с использованием «?» после этого означает, что «-» и «. » являются необязательными. Так что, если он пустой, это тоже нормально.

    Думаю, с остальными группами тоже все ясно.

    Вот результат выражения выше:

     [1] "543-325-1278" "900-123-7865" "421.235.9845" 
    [4] NA "800-565-1112" "361 234 4356"

    Находит номер телефона с «-«, «.», а также с пробелами в качестве разделителя.

    Что делать, если нам нужно найти номер телефона, который начинается с 800 и 900.

     p = "[89]00[-.]\\d{3}[-.]\\d{4}" 
    str_extract_all(ph, p)

    Вывод:

     [[1]] 
    символов (0)[[2]]
    [1] "900-123-7865"[[3]]
    символов(0)[[4]]
    символов(0)[[5]]
    [1] "800 -565-1112"[[6]]
    символ(0)

    Давайте разберемся с приведенным выше регулярным выражением: «[89]00[-.]\\d{3}[-.]\\d{4}» .

    Первый символ должен быть 8 или 9. Этого можно добиться с помощью [89].

    Следующие два элемента будут нулями. Мы прямо упомянули об этом.

    Затем «-» или «.», которые можно получить с помощью [-. ].

    Следующие три цифры = \\d{3}

    Снова ‘-‘ или ‘.’ = [-.]

    Еще четыре цифры в конце = \\d{4}

    Извлечь разные форматы адресов электронной почты

    Адреса электронной почты немного сложнее, чем телефонные номера. Потому что адрес электронной почты может содержать буквы верхнего регистра, буквы нижнего регистра, цифры, специальные символы и все такое. Вот набор адресов электронной почты:

     email = c("[email protected]", 
    "[email protected]",
    "[email protected]",
    "[email protected]")

    Мы разработаем регулярное выражение, которое будет извлекать все эти адреса электронной почты:

    Сначала обработайте часть перед символом @.Эта часть может содержать строчные буквы, которые можно обнаружить с помощью [az], прописные буквы, которые можно определить с помощью [AZ], цифры, которые можно найти с помощью [0– 9], а также специальные символы, такие как «. » и «_». Все они могут быть упакованы так:

    «[a-zA-Z0–9-.]+»

    Знак «+» указывает на один или несколько из этих символов (посмотрите на номер 17 в списке выражений). Потому что мы не знаем, сколько там может быть разных букв, цифр или цифр. Так что на этот раз мы не можем использовать {x} так, как мы это делали для телефонных номеров.

    Теперь поработайте над частью между «@» и «.». Эта часть может состоять из букв верхнего регистра, букв нижнего регистра и цифр, которые могут быть распознаны как:

    «[a-zA_Z0–9]+»

    Наконец, часть после ‘.’. Здесь у нас их четыре: «com», «net», «edu», «org». Этих четырех можно поймать с помощью группы:

    «(com|edu|net|org»)

    Здесь символ «|» используется для обозначения «или-или». Посмотрите на номер 14 списка выражений в начале.

    Вот полное выражение:

     p = "[a-zA-Z0-9-.]+@[a-zA_Z0-9]+\\.(com|edu|net|org)" 
    str_extract_all( электронная почта, p)

    Вывод:

     [[1]] 
    [1] "RashNErel@gmail. com"[[2]]
    [1] "[email protected]"[[3]]
    [1] "48@уни.edu"[[4]]
    [1] "[email protected]"

    Это также будет работать, если вы не укажете части после точек. Поскольку мы добавили знак «+» после второй части, это означает, что это будет принимать любое количество символов после этого.

    Но если вам нужен определенный тип домена, такой как «com» ​​или «net», вы должны явно указать их, как мы сделали в предыдущем выражении.

     p = "[ a-zA-Z0-9-.]+@[a-zA_Z0-9-.]+" 
    str_extract_all(email, p)

    Вывод:

     [[1]] 
    [1] "[email protected]"[[2]]
    [1] "[email protected]"[[3]]
    [1] "[email protected]"[[4]]
    [1] "nerel@stb. com"

    Другим распространенным сложным типом являются URL-адреса

    Вот список URL-адресов:

     urls = c("https://regenerativetoday.com", 
    "http://setf.ml ",
    "https://www.yahoo.com",
    "http://studio_base. net",
    )

    Может начинаться с «http» или «https». Чтобы определить, что это выражение можно использовать :

    ‘https?’

    Это означает, что ‘http’ останется нетронутым.Затем следует знак «?» после «s». Таким образом, «s» является необязательным. Может быть, а может и не быть.

    Другая необязательная часть после термина «://»: «www». Мы можем определить его, используя:

    «(www\\.)?»

    Как мы работали ранее, ‘()’ используется для группировки некоторых выражений. Здесь мы группируем «www» и «.». После круглой скобки ‘?’ означает, что весь этот термин внутри круглой скобки является необязательным. Они могут быть, а могут и не быть.

    Затем доменное имя. В этом наборе адресов электронной почты у нас есть только строчные буквы и «_».Итак, [a-z-] будет работать. Но в общем доменное имя может содержать как буквы верхнего регистра, так и цифры. Итак, мы будем использовать:

    «\\w+»

    Посмотрите на число 4 в списке выражений. ‘\\w’ обозначает символ слова, который может включать строчные буквы, прописные буквы и цифры. Знак «+» указывает на то, что таких символов может быть один или несколько.

    После домена идет еще одна точка и еще несколько символов. Мы получим их, используя:

    «\\.\\w+»

    Помните, если вы используете только точку (.) сопоставить точку не получится. Потому что только одна точка соответствует любому символу. Если вам нужно сопоставить только буквальную точку (.), вам нужно поставить ее как ‘\\.’

    Здесь мы использовали одну точку, обозначенную «\\.», затем символы слова «\\w» и Знак «+» указывает на наличие дополнительных символов.

    Давайте сложим:

     p = "https?://(www\\.)?\\w+\\.\\w+" 
    str_extract_all(urls, p)

    Вывод:

     [[1 ]] 
    [1] "https://regenerativetoday.com"[[2]]
    [1] "http://setf.ml"[[3]]
    [1] "https://www.yahoo.com"[[4]]
    [1] "http://studio_base.com"

    Вы можете получить только ‘. com или ‘.net’. Это можно указать явно.

     p = "https?://(www\\.)?(\\w+)(\\.)+(com|net)" 
    str_extract_all (urls, p)

    Вывод:

     [[1]] 
    [1] "https://regenerativetoday.com"[[2]]
    символов(0)[[3]]
    [1] "https ://www.yahoo.com"[[4]]
    [1] "http://studio_base.com"

    Видите ли, он получает только домены «.com» или «.net» и исключает «.ml’ домен, который у нас был.

    Наконец, поработайте над набором имен

    Это тоже может быть немного сложно. Вот набор имен:

     name = c("Мистер Джон", 
    "Миссис Джон",
    "Мистер Рон",
    "Мисс Рин",
    "Мисс Джули")

    Смотри, это может начинаться с Mr, Ms или Mrs. Иногда ставится точка после Mr, иногда нет. Давайте сначала поработаем над этой частью. Во всех них буква «М» является общей. Оставьте его нетронутым и создайте группу, используя остальные, например:

    «M(r|s|rs)»

    После «M» может быть «r», или «s», или «rs».

    Затем необязательная точка, которую можно получить, используя:

    «\\.?»

    Пробел после которого можно обнаружить с помощью:

    «\\s»

    После того, как имя пространства начинается с заглавной буквы, которую можно ввести с помощью:

    [AZ]»

    После этого заглавной буквы буквы, есть некоторые строчные буквы, и мы не знаем точно, сколько. Итак, мы будем использовать это:

    «\\w*»

    Посмотрите на число 16 в списке выражений.«*» означает 0 или более. Итак, мы говорим, что может быть 0 или более словесных символов.

    Собираем все вместе:

     p = "M(r|s|rs)\\.?[AZ\\s]\\w*" 
    str_extract_all(name, p)

    Вывод:

     [[ 1]] 
    [1] "Мистер Джон"[[2]]
    [1] "Миссис Джон"[[3]]
    [1] "Мистер Рон"[[4]]
    [1] "Мисс .Рин"[[5]]
    [1] "Мисс Джули"

    Поздравляем! Вы работали над некоторыми сложными и интересными шаблонами, которые должны дать вам достаточно знаний, чтобы использовать регулярное выражение для сопоставления практически с любым шаблоном.

    Заключение

    Это еще не все. В регулярном выражении гораздо больше. Но если вы новичок, вы должны гордиться собой, что вы прошли долгий путь. Теперь вы должны быть в состоянии сопоставить практически любой шаблон. Позже я сделаю еще один учебник по расширенному регулярному выражению. Но вы должны быть в состоянии начать использовать регулярные выражения сейчас, чтобы сделать что-то классное.

    Не стесняйтесь подписываться на меня в Twitter и лайкать мою страницу в Facebook.

    Учебник по регулярным выражениям => Сопоставление различных чисел

    Пример

    [a-b] , где a и b — цифры в диапазоне от 0 до 9

      [3-7] будет соответствовать одной цифре в диапазоне от 3 до 7. 

    Совпадение нескольких цифр

      \d\d ​​будет соответствовать 2 последовательным цифрам
    \d+ будет соответствовать 1 или более последовательным цифрам
    \d* будет соответствовать 0 или более последовательным цифрам
    \d{3} будет соответствовать 3 последовательным цифрам
    \d{3,6} будет соответствовать от 3 до 6 последовательных цифр
    \d{3,} будет соответствовать 3 или более последовательным цифрам
      

    \d в приведенных выше примерах можно заменить диапазоном чисел:

      [3-7][3-7] будет соответствовать 2 последовательным цифрам в диапазоне от 3 до 7
    [3-7]+ будет соответствовать 1 или более последовательным цифрам в диапазоне от 3 до 7. 
    [3-7]* будет соответствовать 0 или более последовательным цифрам в диапазоне от 3 до 7.
    [3-7]{3} будет соответствовать 3 последовательным цифрам в диапазоне от 3 до 7.
    [3-7]{3,6} будет соответствовать от 3 до 6 последовательных цифр в диапазоне от 3 до 7.
    [3-7]{3,} будет соответствовать 3 или более последовательным цифрам в диапазоне от 3 до 7.
      

    Вы также можете выбрать определенные цифры:

      [13579] будет соответствовать только «нечетным» цифрам
    [02468] будет соответствовать только "четным" цифрам
    1|3|5|7|9 еще один способ сопоставления «нечетных» цифр — | символ означает ИЛИ
      

    Совпадение чисел в диапазонах, содержащих более одной цифры:

      \d|10 соответствует одной цифре от 0 до 10 ИЛИ 10.| символ означает ИЛИ
    [1-9]|10 соответствует цифре от 1 до 10 в диапазоне от 1 до 9 ИЛИ 10
    [1-9]|1[0-5] соответствует цифре от 1 до 15 в диапазоне от 1 до 9 ИЛИ 1, за которой следует цифра от 1 до 5
    \d{1,2}|100 соответствует от 0 до 100 от одной до двух цифр ИЛИ 100
      

    Совпадение чисел, которые делятся на другие числа:

      \d*0 соответствует любому числу, которое делится на 10 - любому числу, оканчивающемуся на 0
    \d*00 соответствует любому числу, которое делится на 100 — любому числу, оканчивающемуся на 00
    \d*[05] соответствует любому числу, которое делится на 5 - любому числу, оканчивающемуся на 0 или 5
    \d*[02468] соответствует любому числу, которое делится на 2 — любому числу, оканчивающемуся на 0,2,4,6 или 8. 
      

    совпадающих числа, которые делятся на 4 — любое число, которое равно 0, 4 или 8 или оканчивается на 00, 04, 08, 12, 16, 20, 24, 28, 32, 36, 40, 44, 48, 52, 56, 60, 64, 68, 72, 76, 80, 84, 88, 92 или 96

      [048]|\d*(00|04|08|12|16|20|24|28|32|36|40|44|48|52|56|60|64|68|72|76| 80|84|88|92|96)
      

    Можно сократить.Например, вместо 20|24|28 мы можем использовать 2[048] . Кроме того, поскольку 40-е, 60-е и 80-е имеют одинаковый шаблон, мы можем включить их: [02468][048] , а остальные тоже имеют шаблон [13579][26] . Таким образом, всю последовательность можно сократить до:

    .
      [048]|\d*([02468][048]|[13579][26]) - числа, кратные 4
      

    Сопоставление чисел, которые не имеют шаблона, такого как числа, делящиеся на 2, 4, 5, 10 и т. д., не всегда может быть сделано кратко, и вам обычно приходится прибегать к диапазону чисел.Например, сопоставить все числа, которые делятся на 7 в диапазоне от 1 до 50, можно просто, перечислив все эти числа:

    .
      7|14|21|28|35|42|49
    
    или вы могли бы сделать это таким образом
    
    7|14|2[18]|35|4[29]
      



    Язык регулярных выражений — краткий справочник

    • Статья
    • 11 минут на чтение
    Полезна ли эта страница?

    Пожалуйста, оцените свой опыт

    да Нет

    Любая дополнительная обратная связь?

    Отзыв будет отправлен в Microsoft: при нажатии кнопки отправки ваш отзыв будет использован для улучшения продуктов и услуг Microsoft. Политика конфиденциальности.

    Представлять на рассмотрение

    В этой статье

    Регулярное выражение — это шаблон, которому механизм регулярных выражений пытается сопоставить входной текст. Шаблон состоит из одного или нескольких символьных литералов, операторов или конструкций. Краткое введение см. в разделе Регулярные выражения .NET.

    В каждом разделе этого краткого справочника перечислены определенные категории символов, операторов и конструкций, которые можно использовать для определения регулярных выражений.

    Мы также предоставили эту информацию в двух форматах, которые вы можете скачать и распечатать для удобства:

    Экранирование символов

    Символ обратной косой черты (\) в регулярном выражении указывает, что символ, следующий за ним, либо является специальным символом (как показано в следующей таблице), либо должен интерпретироваться буквально. Дополнительные сведения см. в разделе Экранирование символов.

    Экранированный символ Описание Узор Совпадения
    Соответствует символу колокольчика, \u0007. \ "\u0007" в "Ошибка!" + '\ u0007'
    В классе символов соответствует символу возврата, \u0008. [\b]{3,} "\b\b\b\b" в "\b\b\b\b"
    \ т Соответствует вкладке, \u0009. (\w+)\t "item1\t" , "item2\t" в "item1\titem2\t"
    Соответствует возврату каретки, \u000D.( \r не эквивалентен символу новой строки, \n .) \r\n(\w+) "\r\nЭти" в "\r\nЭти\nдве строки. "
    \v Соответствует вертикальной вкладке, \u000B. [\v]{2,} "\v\v\v" в "\v\v\v"
    Соответствует переводу страницы, \u000C. [\f]{2,} "\f\f\f" в "\f\f\f"
    Соответствует новой строке, \u000A. \r\n(\w+) "\r\nЭти" в "\r\nЭти\nдве строки."
    Соответствует побегу, \u001B. "\x001B" в "\x001B"
    \ ннн Использует восьмеричное представление для указания символа ( nnn состоит из двух или трех цифр). \ш\040\ш "a b" , "c d" в "a bc d"
    \x нн Использует шестнадцатеричное представление для указания символа ( nn состоит ровно из двух цифр). \ш\х20\ш "a b" , "c d" в "a bc d"
    \c X

    \c x

    Соответствует управляющему символу ASCII, который указан как X или x , где X или x — это буква управляющего символа. \кС "\x0003" в "\x0003" (Ctrl-C)
    нннн Соответствует символу Unicode, используя шестнадцатеричное представление (ровно четыре цифры, представленные nnnn ). \w\u0020\w "a b" , "c d" в "a bc d"
    \ Если за ним следует символ, который не распознается как escape-символ в этой и других таблицах этого раздела, соответствует этому символу. Например, \* совпадает с \x2A и \. совпадает с \x2E . Это позволяет обработчику регулярных выражений устранять неоднозначность языковых элементов (таких как * или ?) и символьных литералов (представленных как \* или \? ). \d+[\+-x\*]\d+ "2+2" и "3*9" в "(2+2) * 3*9"

    Классы символов

    Класс символов соответствует любому из набора символов. Классы символов включают языковые элементы, перечисленные в следующей таблице. Дополнительные сведения см. в разделе Классы символов.

    Класс символов Описание Узор Совпадения
    [ группа символов ] Соответствует любому одиночному символу из character_group .ай] "р" , "г" , "н" в "царствование"
    [ первый - последний ] Диапазон символов: соответствует любому одиночному символу в диапазоне от первых до последних . [А-Я] "А" , "В" в "AB123"
    . Подстановочный знак: соответствует любому одиночному символу, кроме \n.

    Чтобы совпасть с буквальным символом точки (. или \u002E ), вы должны предварить его escape-символом ( \. ).

    "авеню" в "ступицу"

    "ели" в "воду"

    \p{ имя } Соответствует любому одиночному символу в общей категории Unicode или именованному блоку, заданному name . \p{Lu}

    \p{IsCyrillic}

    "C" , "L" в "City Lights"

    "Д" , "Ж" в "ДЖем"

    \P{ имя } Соответствует любому одиночному символу, не входящему в общую категорию Unicode или именованный блок, указанный в name . \P{Lu}

    \P{IsCyrillic}

    "i" , "t" , "y" in "City"

    "e" , "m" in "ДЖem"

    Соответствует любому символу слова. "I" , "D" , "A" , "1" , "3" в "ID A1.3"
    \Вт Соответствует любому символу, не являющемуся словом. \Вт "" , "." в "ID A1.3"
    Соответствует любому символу пробела. "D" в "ID A1.3"
    Соответствует любому непробельному символу. \с\с "_" в "int __ctr"
    Соответствует любой десятичной цифре. "4" в "4 = IV"
    \D Соответствует любому символу, кроме десятичной цифры. \D "" , "=" , "" , "I" , "V" в "4 = IV"

    Анкеры

    Якоря, или атомарные утверждения нулевой ширины, приводят к успешному или неудачному совпадению в зависимости от текущей позиции в строке, но они не заставляют движок продвигаться по строке или потреблять символы.\д{3} "901" в "901-333-" $ По умолчанию совпадение должно находиться в конце строки или перед \n в конце строки; в многострочном режиме он должен располагаться до конца строки или до \n в конце строки. -\d{3}$ "-333" в "-901-333" Совпадение должно происходить в начале строки. \A\d{3} "901" в "901-333-" Совпадение должно находиться в конце строки или перед \n в конце строки. -\d{3}\Z "-333" в "-901-333" Совпадение должно находиться в конце строки. -\d{3}\z "-333" в "-901-333" Совпадение должно произойти в точке, где закончилось предыдущее совпадение. \Г\(\д\) "(1)" , "(3)" , "(5)" в "(1)(3)(5)[7](9)" Совпадение должно происходить на границе между символом \w (буквенно-цифровой) и символом \W (не буквенно-цифровой). \b\w+\s\w+\b "тема их" , "тема их" в "тема их их" Совпадение не должно происходить на границе \b . \Изгиб\w*\b "заканчивается" , "заканчивается" в "заканчивается посылает терпеть кредитор"

    Группирующие конструкции

    Группирующие конструкции очерчивают подвыражения регулярного выражения и обычно захватывают подстроки входной строки. Группирующие конструкции включают языковые элементы, перечисленные в следующей таблице. Дополнительные сведения см. в разделе Конструкции группировки.

    Группирующая конструкция Описание Узор Совпадения
    ( подвыражение ) Захватывает совпавшее подвыражение и присваивает ему порядковый номер, отсчитываемый от единицы. (\ш)\1 "ее" в "глубокий"
    (? < Имя > Субпрессы )
    или
    (? Имя ' Субпрессия )
    Захватывает совпавшее подвыражение в именованную группу. (?<двойной>\w)\k<двойной> "ее" в "глубокий"
    (? < Название1 - Название2 > >
    )
    или
    (? Название1 - Название2 ' Подключение )
    Определяет определение группы балансировки.((1-3)*(3-1))»
    (?: подвыражение ) Определяет незахватываемую группу. Запись(?:Строка)? "WriteLine" в "Console.WriteLine()"

    "Write" в "Console.Write(значение)"

    (?imnsx-imnsx: подвыражение ) Применяет или отключает указанные параметры в подвыражении .Дополнительные сведения см. в разделе Параметры регулярных выражений. А\d{2}(?i:\w+)\b "A12xl" , "A12XL" в "A12xl A12XL a12xl"
    (?= подвыражение ) Утверждение положительного просмотра вперед нулевой ширины. \b\w+\b(?=.+и.+) "кошки" , "собаки"
    в
    "кошки, собаки и некоторые мыши".
    (?! подвыражение ) Утверждение отрицательного просмотра вперед нулевой ширины. \b\w+\b(?!.+и.+) "и" , "некоторые" , "мыши"
    в
    "кошки, собаки и некоторые мыши".
    (?<= подвыражение ) Положительное ретроспективное утверждение нулевой ширины. \b\w+\b(?<=.+и.+)

    ———————————

    \b\w+\b(?<=.+и.*)

    "некоторые" , "мыши"
    в
    "кошки, собаки и некоторые мыши.
    ————————————
    «и» , «некоторые» , «мыши»
    в
    «кошки, собаки и некоторые мыши».
    (? подвыражение ) Отрицательное утверждение ретроспективного просмотра нулевой ширины. \b\w+\b(?

    ———————————

    \b\w+\b(?

    «кошки» , «собаки» , » и «
    » в
    «кошки, собаки и некоторые мыши.
    ————————————
    «кошки» , «собаки»
    в
    «кошки, собаки и некоторые мыши».
    (?> подвыражение ) Атомная группа. (?>а|аб)с "ac" в "ac"

    ничего в "abc"

    Краткий обзор

    Когда обработчик регулярных выражений встречает выражение просмотра , он берет подстроку, идущую от текущей позиции до начала (просмотр назад) или конца (просмотр вперед) исходной строки, а затем выполняет Регулярное выражение.IsMatch для этой подстроки, используя шаблон поиска. Затем успешность результата этого подвыражения определяется тем, является ли это утверждение положительным или отрицательным.

    Осмотр Имя Функция
    (?=проверить) Положительный прогноз Утверждает, что то, что следует сразу за текущей позицией в строке, является «проверкой»
    (?<=проверить) Положительный просмотр назад Утверждает, что то, что непосредственно предшествует текущей позиции в строке, является «проверкой»
    (?!проверить) Отрицательный прогноз Утверждает, что то, что следует сразу за текущей позицией в строке, не является «проверкой»
    (? Отрицательный ретроспективный просмотр Утверждает, что то, что непосредственно предшествует текущей позиции в строке, не является "проверкой"

    После совпадения атомарных групп не будут повторно оцениваться, даже если оставшаяся часть шаблона не удалась из-за совпадения. Это может значительно улучшить производительность, когда квантификаторы встречаются в атомарной группе или в остальной части шаблона.

    Квантификаторы

    Квантификатор указывает, сколько экземпляров предыдущего элемента (который может быть символом, группой или классом символов) должно присутствовать во входной строке, чтобы произошло совпадение. Квантификаторы включают языковые элементы, перечисленные в следующей таблице. Для получения дополнительной информации см. Квантификаторы.

    Квантификатор Описание Узор Совпадения
    * Соответствует предыдущему элементу ноль или более раз. \д*\.\д ".0" , "19,9" , "219,9"
    + Соответствует предыдущему элементу один или несколько раз. "быть+" "пчела" в "был" , "быть" в "согнутый"
    ? Соответствует предыдущему элементу ноль или один раз. "дождь" "побежал" , "дождь"
    { п } Соответствует предыдущему элементу ровно n раз. ",\d{3}" ",043" в "1,043,6" , ",876" , ",543" и ",210" в "9,876,549,2626" 32,625 9,876,549,243,226
    { п ,} Соответствует предыдущему элементу не менее n раз. "\d{2,}" "166" , "29" , "1930"
    { n , м } Соответствует предыдущему элементу не менее n раз, но не более m раз. "\d{3,5}" "166" , "17668"

    "19302" в "1"

    *? Соответствует предыдущему элементу ноль или более раз, но как можно меньше раз. \д*?\.\д ".0" , "19,9" , "219,9"
    +? Соответствует предыдущему элементу один или несколько раз, но как можно меньше раз. "быть+?" "быть" в "был" , "быть" в "согнут"
    ?? Соответствует предыдущему элементу ноль или один раз, но как можно меньше раз. "рай??н" "побежал" , "дождь"
    { п }? Соответствует предыдущему элементу ровно n раз. ",\d{3}?" ",043" в "1,043,6" , ",876" , ",543" и ",210" в "9,876,549,2626" 32,625 9,876,549,243,226
    { п ,}? Соответствует предыдущему элементу как минимум n раз, но как можно меньше раз. "\d{2,}?" "166" , "29" , "1930"
    { н , м }? Соответствует предыдущему элементу между n и m раз, но как можно меньше раз. "\d{3,5}?" "166" , "17668"

    "193" , "024" в "1"

    Конструкции обратной ссылки

    Обратная ссылка позволяет впоследствии идентифицировать ранее совпавшее подвыражение в том же регулярном выражении. В следующей таблице перечислены конструкции обратной ссылки, поддерживаемые регулярными выражениями в .NET. Дополнительные сведения см. в разделе Конструкции обратной ссылки.

    Конструкция обратной ссылки Описание Узор Совпадения
    \ номер Обратная ссылка. Соответствует значению нумерованного подвыражения. (\ш)\1 "ее" в "искать"
    \k< имя > Именованная обратная ссылка. Соответствует значению именованного выражения. (?\w)\k "ее" в "искать"

    Альтернативные конструкции

    Конструкции чередования модифицируют регулярное выражение, чтобы включить сопоставление либо/или. Эти конструкции включают языковые элементы, перечисленные в следующей таблице. Дополнительные сведения см. в разделе Конструкции чередования.

    Альтернативная конструкция Описание Узор Совпадения
    | Соответствует любому элементу, разделенному вертикальной чертой ( | ). й(е|ис|ат) "это" , "это" в "это день".
    (?( выражение ) да | нет ) Соответствует да , если шаблон регулярного выражения, обозначенный выражением , соответствует; в противном случае соответствует необязательной части no . выражение интерпретируется как утверждение нулевой ширины. (?(А)А\d{2}\b|\b\d{3}\b) "A10" , "910" в "A10 C103 910"
    (?( название ) да | нет ) Совпадения да , если name , именованная или пронумерованная группа захвата, имеет совпадение; в противном случае соответствует необязательному no . (?")?(?(quoted).+?"|\S+\s) "Собаки.jpg" , "\"Йиска играет. jpg\"" в "Собаки.jpg \"Йиска играет.jpg\""

    Замена

    Замены — это элементы языка регулярных выражений, которые поддерживаются в шаблонах замены. Дополнительные сведения см. в разделе Замены. Метасимволы, перечисленные в следующей таблице, являются атомарными утверждениями нулевой ширины.

    Символ Описание Узор Сменный шаблон Строка ввода Строка результата
    $ номер Заменяет подстроку, совпавшую с группой , на число . \b(\w+)(\s)(\w+)\b $3 $2 $1 "раз два" "два один"
    ${ имя } Заменяет подстроку, соответствующую именованной группе name . \b(?\w+)(\s)(?\w+)\b ${слово2} ${слово1} "раз два" "два один"
    $$ Заменяет литерал "$". \b(\d+)\s?USD $$$1 "103 доллара США" "103 доллара"
    $& Заменяет копию всего совпадения. \$?\d*\.?\d+ **$&** "1,30 доллара" "**1,30$**"
    $` Заменяет весь текст входной строки до совпадения. Б+ $` "AABBCC" "ААААКК"
    Заменяет весь текст входной строки после совпадения. Б+ "AABBCC" "ААККЦ"
    $+ Заменяет последнюю захваченную группу. Б+(К+) $+ "AABBCCDD" "AACCDD"
    $_ Заменяет всю входную строку. Б+ $_ "AABBCC" "AAAABBCCCC"

    Опции регулярных выражений

    Можно указать параметры, управляющие тем, как обработчик регулярных выражений интерпретирует шаблон регулярного выражения. Многие из этих параметров могут быть указаны либо встроенными (в шаблоне регулярного выражения), либо как одна или несколько констант RegexOptions. В этом кратком справочнике перечислены только встроенные параметры.Дополнительные сведения о встроенных параметрах и параметрах RegexOptions см. в статье Параметры регулярных выражений.

    Вы можете указать встроенный параметр двумя способами:

    • С помощью другой конструкции (?imnsx-imnsx) , где знак минус (-) перед параметром или набором параметров отключает эти параметры. Например, (?i-mn) включает сопоставление без учета регистра ( i ), выключает многострочный режим ( m ) и выключает захват безымянных групп ( n ). Параметр применяется к шаблону регулярного выражения, начиная с точки, в которой он определен, и действует либо до конца шаблона, либо до точки, где другая конструкция обращает параметр.
    • С помощью конструкции группировки (?imnsx-imnsx: подвыражение ) , которая определяет параметры только для указанной группы.

    Механизм регулярных выражений .NET поддерживает следующие встроенные параметры:

    Опция Описание Узор Совпадения
    и Использовать сопоставление без учета регистра. и $ соответствуют началу и концу строки, а не началу и концу строки. Пример см. в разделе «Многострочный режим» раздела «Параметры регулярных выражений».
    нет Не захватывать безымянные группы. Пример см. в разделе «Только явные захваты» в параметрах регулярных выражений.
    с Использовать однолинейный режим. Пример см. в разделе «Однострочный режим» раздела «Параметры регулярных выражений».
    х Игнорировать неэкранированные пробелы в шаблоне регулярного выражения. \b(?x) \d+ \s \w+ "1 трубкозуб" , "2 кошки" в "1 трубкозуб 2 кошки IV центурионы"

    Разные конструкции

    Разные конструкции либо изменяют шаблон регулярного выражения, либо предоставляют информацию о нем. В следующей таблице перечислены различные конструкции, поддерживаемые .СЕТЬ. Дополнительные сведения см. в разделе Разные конструкции.

    Конструкция Определение Пример
    (?imnsx-imnsx) Задает или отключает такие параметры, как нечувствительность к регистру в середине шаблона. Дополнительные сведения см. в разделе Параметры регулярных выражений. \bA(?i)b\w+\b соответствует "ABA" , "Able" в "ABA Able Act"
    (?# комментарий ) Встроенный комментарий.Комментарий заканчивается первой закрывающей скобкой. \bA(?# Соответствует словам, начинающимся с буквы A)\w+\b
    # [до конца строки] Комментарий X-режима. Комментарий начинается с неэкранированного # и продолжается до конца строки. (?x)\bA\w+\b# Соответствует словам, начинающимся с A

    См. также

    Памятка по синтаксису регулярных выражений — JavaScript

    .

    Имеет одно из следующих значений:

    • Соответствует любому одиночному символу , кроме разделителей строк : \n , \r , \u2028 или \ . Например, /.y/ соответствует «мой» и «ау», а не «да», в «да, сделай мой день».
    • Внутри класса символов точка теряет свое особое значение и соответствует буквальной точке.] Можно использовать — он будет соответствовать любому символу включая новые строки.

      В ES2018 добавлен флаг s "dotAll", который позволяет точке также соответствуют терминаторам строк.

    Соответствует любой цифре (арабской цифре). Эквивалентно [0-9] . Например, /\d/ или /[0-9]/ соответствует «2» в «B2 — это номер люкса».0-9]/ соответствует «B» в «B2 — номер набора».

    Соответствует любому буквенно-цифровому символу основного латинского алфавита, включая подчеркивание. Эквивалентно [A-Za-z0-9_] . За например, /\w/ соответствует «а» в «яблоке», «5» в «5,28 доллара» и «3» в «3D».

    \Вт

    Соответствует любому символу, который не является символом слова из основного Латинский алфавит.A-Za-z0-9_]/ соответствует "%" в «50%».

    Соответствует одному символу пробела, включая пробел, табуляцию, форму перевод строки, перевод строки и другие пробелы Unicode. Эквивалентно [ \f\n\r\t\v\u00a0\u1680\u2000-\u200a\u2028\u2029\u202f\u205f\u3000\ufeff] . Например, /\s\w*/ соответствует "bar" в "foo bar".

    Соответствует одному символу, кроме пробела. \f\n\r\t\v\u00a0\u1680\u2000-\u200a\u2028\u2029\u202f\u205f\u3000\ufeff] . Например, /\S\w*/ соответствует "foo" в "foo bar".

    \ т Соответствует горизонтальной вкладке.
    Соответствует возврату каретки.
    Соответствует переводу строки.
    \v Соответствует вертикальной вкладке.
    Соответствует переводу страницы.
    [\b] Соответствует возврату. Если вы ищете символ границы слова (\b ), см. Границы.
    \0 Соответствует символу NUL. Не используйте после этого другую цифру.
    Х

    Соответствует управляющему символу, используя нотация вставки, где «X» — буква от A до Z (соответствует кодовым точкам U+0001 U+001F ). Например, /\cM/  соответствует "\r" в "\r\n".

    \x чч Соответствует символу с кодом чч (два шестнадцатеричные цифры).
    чххх Сопоставляет кодовую единицу UTF-16 со значением чччч (четыре шестнадцатеричных цифры).
    \u {hhhh} или \u{hhhhh} (Только когда установлен флаг u .) Соответствует символу с значение Юникода U+ чччч или U+ ччччч (шестнадцатеричные цифры).
    \

    Указывает, что следующий символ следует обрабатывать особым образом, или "сбежал". Он ведет себя одним из двух способов.

    • Для символов, которые обычно трактуются буквально, указывает, что следующий символ является специальным и не должен интерпретироваться буквально.Например, /b/ соответствует символу "b". Поместив обратную косую черту перед "b", то есть с помощью /\b/ , символ становится специальным, чтобы означать соответствие границе слова.
    • Для символов, которые обычно обрабатываются особым образом, указывает, что следующий символ не является специальным и должен быть интерпретирован в прямом смысле. Например, «*» — это специальный символ, означающий 0 или должно быть сопоставлено больше вхождений предшествующего символа; за например, /a*/ означает соответствие 0 или более буквам "a".Чтобы соответствовать * буквально, поставьте перед ним обратную косую черту; Например, /a\*/ соответствует "a*".

    Обратите внимание, что некоторые символы, такие как : , - , @ и т. д. не имеют особого значения при экранировании или когда не сбежал. Escape-последовательности типа \:, \-, \@ будут эквивалентны их литералам, неэкранированные эквиваленты символов в регулярных выражениях.Однако в регулярные выражения с unicode, это вызовет ошибку недействительной идентификации . Это сделано для обеспечения обратной совместимости с существующим кодом, использующим новые escape-последовательности, такие как \p или \k .

    Примечание: Чтобы буквально сопоставить этот символ, экранируйте его. с собой. Другими словами, для поиска \ используйте /\\/ .

    1. Что такое регулярное выражение?

    Регулярные выражения представляют собой специально закодированные текстовые строки, используемые как шаблоны для сопоставления наборов строк. Они начали появляться в 1940-х гг. способ описания обычных языков, но они действительно начали появляться в мир программирования в 1970-х годах. Первое я мог найти их в текстовом редакторе QED, написанном Кеном Томпсоном.

    «Регулярное выражение — это шаблон, который определяет набор строк персонажей; говорят, что он соответствует определенным строкам.” —Кен Томпсон

    Регулярные выражения позже стали важной частью набора инструментов который появился из операционной системы Unix — ed , с и с ( vim ) редакторы, grep , AWK и др. Но способы, которыми регулярно выражения были реализованы не всегда так регулярно.

    Примечание

    В этой книге используется индуктивный подход; другими словами, он движется от частного к общему. \d{3}[.-]?)?\d{3}[.-]?\d{4}$

    , к чему мы и подойдем в конце этой главы: надежное регулярное выражение, соответствующее 10-значному номеру телефона в Северной Америке номер, с кодом города в скобках или без них, с кодом города или без него дефисы или точки (точки) для разделения чисел. (круглые скобки должны быть тоже сбалансированный; другими словами, вы не можете просто иметь один.)

    Примечание

    Глава 10 показывает вам немного более сложный регулярное выражение для номера телефона, но приведенного выше достаточно для цели настоящей главы.

    Если вы еще не поняли, как все это работает, не беспокойтесь: я объясню все выражение понемногу в этой главе. Если вы просто будете следовать примеры (и, если уж на то пошло, по всей книге), написание регулярные выражения скоро станут для вас второй натурой. Готов узнать для себя?

    Иногда я представляю символы Unicode в этой книге, используя их кодовая точка — четырехзначное шестнадцатеричное (с основанием 16) число. Эти кодовые точки отображаются в виде U+0000 .U+002E, для например, представляет кодовую точку для точки или точки (.).

    Сначала позвольте представить вам веб-сайт Regexpal по адресу http://www.regexpal.com. Откройте сайт в браузере, например Google Chrome или Mozilla Firefox. Вы можете увидеть, как выглядит сайт как на рис. 1-1.

    Рис. 1-1. Regexpal в браузере Google Chrome

    Вы можете видеть, что в верхней части есть текстовая область, а большая текстовое поле под ним. Верхнее текстовое поле предназначено для ввода обычного выражения, а нижний содержит тему или целевой текст.То целевой текст — это текст или набор строк, которые вы хотите сопоставить.

    Примечание

    В конце этой и каждой последующей главы вы найдете раздел «Технические примечания». Эти примечания содержат дополнительную информацию о технологии, рассмотренной в главе, и рассказать, где взять больше информации об этой технологии. Размещение этих заметок в конце глав помогает поддерживать поток основного текста в движении вперед вместо того, чтобы останавливаться, чтобы обсудить каждую деталь по пути.

    Теперь мы сопоставим номер телефона в Северной Америке с регулярным выражением. Тип указанный здесь номер телефона в нижней части Regexpal:

     707-827-7019 

    Узнаете ли вы его? Это номер O’Reilly Media.

    Сопоставим это число с регулярным выражением. Есть много способов сделать это, но для начала просто введите сам номер в поле верхний раздел, точно так же, как написано в нижнем разделе (подожди сейчас, не вздыхайте):

     707-827-7019 

    Вы должны увидеть номер телефона, который вы ввели в нижнее поле выделены от начала до конца желтым цветом.Если это то, что вы видите (как показано на рис. 1–2), то вы в деле.

    Примечание

    Когда я упоминаю цвета в этой книге в связи с чем-то, что вы можно увидеть на изображении или снимке экрана, например выделение в Regexpal, эти цвета могут отображаться в Интернете и в версиях электронных книг. книга, но, увы, не в печати. Итак, если вы читаете эту книгу на бумаге, тогда, когда я упомяну цвет, ваш мир будет в оттенках серого, с моим извинения.

    Рис. 1-2.Десятизначный номер телефона, выделенный в Regexpal

    В этом регулярном выражении вы использовали что-то вызывает строковый литерал для соответствия строке в целевом тексте. Строковый литерал — это буквальное представление строки.

    Теперь удалите число в верхнем поле и замените его только номер 7 . Вы видели, что произошло? Теперь только выделены семерки. Буквенный символ (число) 7 в регулярном выражении соответствует четырем экземпляры числа 7 в тексте, который вы сопоставляете.

    Что, если вы хотите сопоставить все цифры в телефонном номере сразу? Или соответствует любому номеру в этом отношении?

    Попробуйте следующее, точно так же, как показано, еще раз в верхнем тексте поле:

     [0-9] 

    Все числа (точнее цифр ) в нижняя часть выделена чередующимся желтым и синим цветом. Что за регулярное выражение [0-9] говорит процессор регулярных выражений: «Сопоставьте любую цифру, которую вы найдете в диапазоне от 0 до 9.”

    Квадратные скобки не совпадают буквально, потому что они обрабатывается специально как метасимволов . Метасимвол имеет особое значение в регулярных выражениях и зарезервировано. Обычный выражение в форме [0-9] называется классом символов или иногда набором символов .

    Можно точнее ограничить диапазон цифр и получить то же самое результат, используя более конкретный список цифр для сопоставления, например следующим образом:

     [012789] 

    Это будет соответствовать только перечисленным цифрам, то есть 0, 1, 2, 7, 8, и 9.Попробуйте в верхнем поле. Еще раз, каждая цифра в нижнем поле будут выделены чередующимися цветами.

    Для соответствия любому 10-значному номеру телефона в Северной Америке, части которого разделенные дефисом, вы можете сделать следующее:

     [0-9][0-9][0-9]-[0-9][0-9][0-9]-[0-9][ 0-9][0-9][0-9] 

    Это сработает, но это напыщенно. Есть лучший способ с нечто, называемое стенографией.

    Еще один способ сопоставления цифр, который вы видели в начале глава содержит \d , что само по себе будет соответствовать всем арабским цифрам, как и [0-9] .Попробуйте это в верхней части и, как и в предыдущих регулярных выражениях, цифры ниже будут выделено. Такое регулярное выражение называется символов сокращение . (Его также называют экранированием символов , но это термин может ввести в заблуждение, поэтому я его избегаю. Я объясню позже.)

    Чтобы сопоставить любую цифру в телефонном номере, вы также можете сделать это:

     \d\d\d-\d\d\d-\d\d\d\d 

    Повторение \d три и четыре раз в последовательности будет точно соответствовать трем и четырем цифрам в последовательности.Дефис в приведенном выше регулярном выражении вводится как литерал символ и будет соответствовать как таковой.

    Что насчет дефисов? Как вы их сопоставляете? Вы можете использовать буквальный дефис (-), как уже показано, или вы можете использовать экранированный верхний регистр D ( \D ), который соответствует любому символу, который равен , а не a цифра.

    В этом образце используется \D вместо буквальный дефис.

     \d\d\d\D\d\d\d\D\d\d\d\d 

    Опять же, весь номер телефона, включая дефисы, должен выделиться на этот раз.

    Вы также можете сопоставить эти надоедливые дефисы с точкой (.):

     \d\d\d.\d\d\d.\d\d\d\d 

    Точка или точка по существу действуют как подстановочный знак и будет соответствовать любому символ (кроме, в некоторых случаях, конца строки). В примере выше регулярное выражение соответствует дефису, но оно также может соответствовать знак процента (%):

     707%827%7019 

    Или вертикальная черта (|):

     707|827|7019 

    Или любой другой символ.

    Примечание

    Как я уже говорил, точка (официально точка) обычно не соответствует символу новой строки, например переводу строки (U+000A).Однако есть способы сделать возможным сопоставление новой строки с точка, которую я покажу вам позже. Это часто называют довсего варианта .

    Теперь вы сопоставите только часть телефонного номера, используя то, что известная как группа захвата . Затем вы обратитесь к содержимое группы с обратной ссылкой . Чтобы создать захват группу, в пару \d вложить скобки, чтобы поместить его в группу, а затем \1 для обратной ссылки на то, что было захвачено:

     (\d)\d\1 

    заключены в группу, заключенную в круглые скобки.В результате это регулярное выражение соответствует префикс 707 . Вот разбивка это:

    • (\d) соответствует первой цифре и фиксирует его (число 7 )

    • \d соответствует следующей цифре (число 0 ), но не фиксирует его, потому что он не заключен в круглые скобки

    • \1 ссылки на захваченные цифра (число 7 )

    Это будет соответствовать только коду города. Не волнуйтесь, если вы не полностью поймите это прямо сейчас. Позже вы увидите множество примеров групп. в книге.

    Теперь вы можете сопоставить весь номер телефона с одной группой и несколько обратных ссылок:

     (\d)0\1\D\d\d\1\D\1\d\d\d 

    Но это не так элегантно, как могло бы быть. Давайте попробуем что-нибудь это работает еще лучше.

    Вот еще один способ сопоставить номер телефона, используя другой синтаксис:

     \d{3}-?\d{3}-?\d{4} 

    Числа в фигурных скобках сообщают обработчику регулярных выражений ровно сколько вхождений этих цифр вы хотите это искать.Скобки с числами являются своего рода квантификатором . Сами брекеты считаются метасимволами.

    Вопросительный знак ( ? ) другой вид квантификатора. Он следует за дефисом в регулярное выражение выше и означает, что дефис необязателен, т. е. что может быть ноль или одно вхождение дефиса (один или ни одного). Есть и другие квантификаторы, такие как знак плюс ( + ), который означает «один или несколько», или звездочка ( * ), что означает «ноль или более».

    Используя квантификаторы, вы можете сделать регулярное выражение еще более кратко:

     (\d{3,4}[.-]?)+ 

    Знак плюс снова означает, что количество может встречаться один или несколько раз. Это регулярное выражение будет соответствовать трем или четырем цифрам, за которым следует необязательный дефис или точка, сгруппированные скобками, один или несколько раз ( + ).

    Голова кружится? Надеюсь нет. Вот посимвольно анализ регулярного выражения выше:

    • ( открыть захват группа

    • \ начальный символ сокращение (экранирование следующего символа)

    • d сокращение для конечного символа (любая цифра в диапазоне от 0 до 9 соответствует \d )

    • { квантификатор открытия

    • 3 минимальное количество для

    • , отдельные количества

    • 4 максимальное количество до match

    • } закрытый квантификатор

    • [ открытый класс символов

    • . точек или точек (соответствует буквенная точка)

    • - буквальный символ для соответствия дефис

    • ] близкий символ класс

    • ? ноль или единица квантификатор

    • ) близкий захват группа

    • + один или несколько квантификатор

    Все это работает, но не совсем правильно, потому что тоже совпадет другие группы из 3 или 4 цифр, будь то в виде номера телефона или нет.Да, мы учимся на своих ошибках лучше, чем на своих успехах.

    Итак, давайте немного улучшим его:

     (\d{3}[.-]?){2}\d{4} 

    Это будет соответствовать двум последовательностям, не заключенным в скобки, по три цифры в каждой, за которым следует необязательный дефис, а затем ровно четыре цифры.

    Наконец, вот регулярное выражение, позволяющее использовать круглые скобки опционально обернуть первую последовательность из трех цифр и сделать область также необязательный код:

     ^(\(\d{3}\)|^\d{3}[.  (знак знака вставки) в начале регулярного выражения или после
            вертикальная черта (  |  ) означает, что
            номер телефона будет в начале строки. 

  2. ( открывает захват группа.

  3. \( - буквальный открытый скобка.

  4. \d соответствует цифре.

  5. {3} - квантификатор, который, после \d соответствует ровно трем цифры. соответствует началу линия.

  6. \d соответствует цифре.

  7. {3} является квантификатором который соответствует ровно трем цифрам.

  8. [.-]? соответствует необязательной точке или дефис.

  9. ) Группа ближнего захвата.

  10. ? сделать группу необязательной, то есть префикс в группе не обязательный.

  11. \d соответствует цифре.

  12. {3} соответствует ровно трем цифры.

  13. [.-]? соответствует другому необязательная точка или дефис.

  14. \d соответствует цифре.

  15. {4} соответствует ровно четырем цифры.

  16. $ соответствует концу строки.

  17. Это окончательное регулярное выражение соответствует 10-значному североамериканскому номер телефона, со скобками, дефисами или точками или без них.Пытаться различные формы числа, чтобы увидеть, что будет соответствовать (и что не будет).

    Примечание

    Группа захвата в приведенном выше регулярном выражении не необходимый. Группа нужна, а захватывающая часть - нет. Там это лучший способ сделать это: группа без захвата. Когда мы вернемся к этому регулярное выражение в последней главе книги, вы поймете Зачем.

    В заключение этой главы я покажу вам регулярное выражение для номер телефона в нескольких приложениях.

    TextMate — это редактор, доступный только на Mac и использующий тот же библиотека регулярных выражений в качестве языка программирования Ruby. Ты можешь использовать регулярные выражения с помощью функции поиска (поиска), как показано на рис. 1–3. Установите флажок рядом с Обычный выражение .

    Рис. 1-3. Регулярное выражение номера телефона в TextMate

    Notepad++ доступно в Windows и является популярным бесплатным редактором, использующим библиотека регулярных выражений PCRE. Вы можете получить к ним доступ через поиск и замените (Рисунок 1-4), нажав переключатель рядом to Регулярное выражение .

    Рис. 1-4. Регулярное выражение номера телефона в Notepad++

    Oxygen также является популярным и мощным XML-редактором, использующим регулярные выражения Perl 5. синтаксис. Вы можете получить доступ к регулярным выражениям через поиск и замену диалоговое окно, как показано на рис.  1-5, или через его обычное построитель выражений для схемы XML. Чтобы использовать регулярные выражения с Найти/Заменить, поставить галочку рядом с Обычный выражение .

    Рис. 1-5. Регулярное выражение номера телефона в Oxygen

    На этом введение заканчивается.Поздравляем. Вы рассмотрели много земли в этой главе. В следующей главе мы сосредоточимся на простое сопоставление с образцом.

    • Что такое регулярное выражение

    • Как использовать Regexpal, простое регулярное выражение процессор

    • Как сопоставить строковые литералы

    • Как сопоставить цифры с классом символов

    • Как сопоставить цифру с сокращенным символом

    • Как сопоставить цифру с символом

    • Как использовать группу захвата и обратную ссылку

    • Как сопоставить точное количество набора строк

    • Как сопоставить необязательно символ (ноль или один) или один или несколько раз

    • Как сопоставить строки в начале или в конце линия

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *