Следующие выражения не совпадают: /[.]*/
и /.*/
. Почему это и как они отличаются друг от друга? Каково взаимодействие между []
и специальными символами в регулярных выражениях?Различия между `[.]` Vs `.` в regex
спасибо.
Следующие выражения не совпадают: /[.]*/
и /.*/
. Почему это и как они отличаются друг от друга? Каково взаимодействие между []
и специальными символами в регулярных выражениях?Различия между `[.]` Vs `.` в regex
спасибо.
Точка .
обычно является подстановочным значком, соответствующим любому символу. Однако в классе символов ([]
) он рассматривается как литерал и соответствует только точке.
character class == '[]' – epascarello
Точнее, '.' обычно соответствует любому символу, кроме символов новой строки. –
.*
буквально означает «соответствует нулю или более любого символов», в котором .
выступает в качестве шаблона.[.]*
буквально означает «совпадение нуля или более точек .
символов», где .
, заключенный в класс символов []
, сопоставляется буквально.
Кстати, «правильный» способ избежать специальных символов - это обратная косая черта, поэтому '/[.]*/' будет '/\.*/'. –