Что значит . совпадение?

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

За исключением новых строк \n .

Есть ли другие исключения? Как насчет символа NUL \0 или символа обратного пробела \b или любого другого другого непечатаемого символа ASCII?

Имеют ли разные утилиты / программы, такие как sed, awk, perl и vim, по-другому или одинаково в этом аспекте?

  • Разместить одиночную точку с Vim / Ex
  • Как использовать FileType в Vim?
  • Как установить коды клавиш вручную в vim?
  • Как я могу искать и выделять несколько строк в VIM?
  • Почему vim не открывается на своем экране?
  • Вставка палитры Vim с символами, отличными от ASCII
  • ! fmt только для текущей строки
  • Как добавить строку во многие файлы
  • 3 Solutions collect form web for “Что значит . совпадение?”

    Из info regex :

     3.2 Оператор Match-any-character (`. ')
     ==========================================
    
     Этот оператор соответствует любому одиночному типу печати или непечатаемому символу
     кроме этого не будет соответствовать:
    
      новая линия
           если бит синтаксиса `RE_DOT_NEWLINE 'не установлен.
    
      ноль
           если установлен бит синтаксиса `RE_DOT_NOT_NULL '.
    

    . эквивалентно [^\n] для всех стандартных флагов регулярных выражений UNIX, однако в Windows это обычно [^\r\n] из-за синтаксиса концов строк в стиле Windows. На других платформах она должна оцениваться независимо от стандартной последовательности строк новой строки.

    В Perl и некоторых других языках будет создан однострочный режим . также соответствуют \n (или [\r\n] при добавлении регулярных выражений Windows и т. д.), что делает его буквально совпадающим с чем-либо.

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

    Если вы используете какие-либо утилиты Plan 9 , возможно, редактор Сэма , который использует Структурные регулярные выражения , '.' метасимвол соответствует каждому символу, кроме новой строки. Я считаю, что «@» соответствует любому одиночному символу, включая новую строку. Характер структурных регулярных выражений способствует написанию многострочных паттернов или, возможно, «шаблонов, которые игнорируют линейную структуру». Похоже, в Google Code есть структурный модуль регулярного выражения Python , но я не могу сделать многое другое на пути реализации.

    Interesting Posts

    Как проверить, сколько файлов было создано за одну неделю?

    libvirt: Создание виртуальной машины Centos 7: не удалось запустить Switch Root

    BSD Books – Лучшие книги для OpenBSD и FreeBSD

    Печатать значения строк из текста с разделителями в Unix

    Есть ли надежный способ для дочернего процесса передать готовность родительскому процессу?

    Как сохранить удаленный каталог в актуальном состоянии с помощью локального каталога автоматически?

    Найдите вложенные тексты непечатаемых символов

    Экспедирование портов KVM

    Автоматически устанавливать атрибут append для вновь созданных файлов / папок?

    Обновление Redmine не находит зависимости от мокки

    vi <TAB> завершает только каталоги в bash

    Преобразование текста в ASCII / ISO-8859-1

    Мне нужна помощь с командой «at»

    Неверное отображение персонажа в приложениях, связанных с Интернетом

    Изменить размер системной консоли как пользователя

    Linux и Unix - лучшая ОС в мире.