Нужно ли экранировать точку в классе символов (квадратные скобки) регулярного выражения?

97

Точка .в регулярном выражении соответствует любому одиночному символу. Чтобы регулярное выражение соответствовало точке, точка должна быть экранирована:\.

Мне было указано, что внутри квадратных скобок []не нужно экранировать точку. Например, выражение: [.]{3}соответствует ...строке.

Не правда ли? И если да, то верно ли это для всех стандартов регулярных выражений?

Дариуш
источник
Да, это правда, что DOT (и большинство других специальных символов) не нужно экранировать в классе символов.
anubhava
3
Не существует "стандарта" синтаксиса регулярных выражений.
BoltClock
3
@BoltClock есть несколько: posix, posix extended, perl. См. En.wikipedia.org/wiki/Regular_expression#Standards
Дариуш
1
@Dariusz это ты проголосовал за меня, потому что думал, что я был неправ? если так, то я хочу вернуть свои 2 очка :)
Пол Самсота
@peeskillet Да, я был, я исправился. Спасибо и извините.
Dariusz

Ответы:

136

В символьной классе (квадратные скобки) любой символ , за исключением ^, -, ]или \является буквальным.

Этот веб-сайт является прекрасным справочником и содержит много информации о нюансах различных разновидностей регулярных выражений. http://www.regular-expressions.info/refcharclass.html

сирень
источник
3
Это действительно зависит от того, как язык обрабатывает это, но для большинства языков это верно.
Patrick Oscity
40
-также буквально, если это последнее значение
Педро Лобито
16
И ^ является буквальным, если это не первый персонаж
Найджел Б. Пек
1
Если $ выглядит как переменная, ее также нужно экранировать. Например: [$.]
W3Coder
1
@PedroLobito И если это первое, я думаю
Тим Мэлоун