Почему регулярные выражения Ruby используют \A и\z вместо ^ и $?
Я не программист Ruby, но когда я читал обширное руководство по безопасности Ruby on Rails, я заметил этот раздел:
Общей ошибкой в регулярных выражениях Rubys является сопоставление строк, начинающихся и заканчивающихся символами ^ и $, вместо \A и\z.
Кто-нибудь знает, если это только вопрос эстетики или что-то еще? Я спрашиваю, потому что я использовал только языки, которые используют ^
и $
.
Ответы
Ответ 1
Это не относится к Ruby; \A
и \Z
- это не то же самое, что ^
и $
. ^
и $
- это начало и конец якорей line, тогда как \A
и \Z
- это начало и конец якорей string.
Ruby отличается от других языков тем, что он автоматически использует "многострочный режим" (который позволяет вышеупомянутое поведение с ^
и $
совпадением на строку) для регулярных выражений, но в большинстве других вариантов вам необходимо включить его что, вероятно, почему эта статья содержит предупреждение.
Ссылка: http://www.regular-expressions.info/anchors.html