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

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

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

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

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

  • vim sudo hack auto reload
  • Текстовый редактор с отложенным переносом слов
  • Есть ли эквивалент sudoedit для vimdiff?
  • Возможно ли запустить экземпляр сервера клиентов Vim через SSH + tmux
  • vim: используйте строку из поиска в команде replace
  • Клавиша ввода отличается от возврата каретки (CR)
  • Как я могу искать и выделять несколько строк в VIM?
  • Нет подсветки синтаксиса при редактировании crontab
  • 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 , но я не могу сделать многое другое на пути реализации.

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