Подтвердить что ты не робот

Почему регулярные выражения Ruby используют \A и\z вместо ^ и $?

Я не программист Ruby, но когда я читал обширное руководство по безопасности Ruby on Rails, я заметил этот раздел:

Общей ошибкой в ​​регулярных выражениях Rubys является сопоставление строк, начинающихся и заканчивающихся символами ^ и $, вместо \A и\z.

Кто-нибудь знает, если это только вопрос эстетики или что-то еще? Я спрашиваю, потому что я использовал только языки, которые используют ^ и $.

4b9b3361

Ответ 1

Это не относится к Ruby; \A и \Z - это не то же самое, что ^ и $. ^ и $ - это начало и конец якорей line, тогда как \A и \Z - это начало и конец якорей string.

Ruby отличается от других языков тем, что он автоматически использует "многострочный режим" (который позволяет вышеупомянутое поведение с ^ и $ совпадением на строку) для регулярных выражений, но в большинстве других вариантов вам необходимо включить его что, вероятно, почему эта статья содержит предупреждение.

Ссылка: http://www.regular-expressions.info/anchors.html