Различие между \A \z и ^ $ в регулярных выражениях Ruby

Так как Git для Windows 2.18 упоминает

Фильтр diff для файлов .pdf был исправлен.

blockquote>

Естественно, что в 2.17 был включен diff-фильтр для pdf.
Вы можете увидеть его настройки в git-for-windows / build-extra / .

184
задан Daniel X Moore 12 September 2015 в 05:04
поделиться

2 ответа

Если Вы в зависимости от регулярного выражения для проверки, Вы всегда хотите использовать \A и \z. ^ и $ будет только соответствовать вплоть до символа новой строки, что означает, что они могли использовать электронное письмо как me@example.com\n<script>dangerous_stuff();</script> и все еще иметь его, проверяют, так как regex только видит все перед \n.

Моя рекомендация просто полностью разделила бы новые строки от имени пользователя или электронной почты заранее, так как нет в значительной степени никакой законной причины для одной. Затем можно безопасно использовать ИЛИ \A \z или ^ $.

210
ответ дан akhanubis 23 November 2019 в 05:56
поделиться

Запуск и конец строки не могут обязательно быть тем же самым как запуском и концом строки. Вообразите, использовали ли Вы следующее в качестве своей тестовой строки:

мой
имя

Уведомление Andrew

, что строка имеет много строк в ней - ^ и $, символы позволяют Вам соответствовать началу и концу тех строк (в основном рассматривающий \n символ как разделитель), в то время как \A и \Z позволяют Вам соответствовать началу и концу всей строки.

15
ответ дан Andrew Hare 23 November 2019 в 05:56
поделиться
Другие вопросы по тегам:

Похожие вопросы: