Чи потрібно виділяти крапку в класі символів (квадратні дужки) регулярного виразу?


97

Крапка .в регулярному виразі відповідає будь-якому окремому символу. Для того, щоб регулярний вираз відповідав крапці, крапку потрібно екранувати:\.

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

Не правда? І якщо так, чи це справедливо для всіх стандартів регулярного виразу?


Так, це правда, що DOT (та більшість інших спеціальних символів) не потрібно уникати в класі символів.
анубхава

3
Не існує "стандарту" для синтаксису регулярних виразів.
BoltClock

3
@BoltClock є деякі: posix, posix розширений, perl. Дивіться en.wikipedia.org/wiki/Regular_expression#Standards
Даріуш

1
@Dariusz ти був тим, хто проголосував за мене, бо думав, що я помилявся? якщо так, я хочу повернути свої 2 бали :)
Пол Самсота

@peeskillet так, я був, я виправлений. Thx і вибачте.
Dariusz

Відповіді:


136

У символьній класі (квадратні дужки) будь-який символ , за винятком ^, -, ]або \є буквальним.

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


3
Це справді залежить від того, як мова поводиться з цим, але для більшості мов це правда.
Патрік Оссіті

40
-також буквальний, якщо це останнє значення
Педро Лобіто

16
І ^ буквально, якщо це не перший персонаж
Найджел Б. Пек

1
Якщо $ виглядає як змінна, її також потрібно екранувати. Напр .: [$.]
W3Coder

1
@PedroLobito І якщо це перший, я думаю
Тім Малоун
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.