Size: a a a

2020 November 17

R

Roux in RubyRush
Привет, вопрос😄
Есть у меня регулярка, но при инициализации модели ругается так
ArgumentError: The provided regular expression is using multiline anchors (^ or $), which may present a security risk. Did you mean to use \A and \z, or forgot to add the :multiline => true option?
Ок, нахожу объяснение этому и тут вопрос, я настолько не понимаю английский или что? Почему с \A \z это НЕ строка?
источник

R

Roux in RubyRush
Вроде как черным по белому написано, ^ $ - начало и конец линии(любой), \A \z - начало и конец конкретно СТРОКИ. Но при этом второе это как раз не строка. Потому регулярки с ними не работают, потому что это же, блин, не строка. Короче интересно😄
источник

Э

Эдем in RubyRush
Ну всё правильно написано, в чём вопрос тогда?
источник

E

Eugene in RubyRush
строка = текст

линия = строка текста
источник

E

Eugene in RubyRush
string - это весь текст

line - это кусок этого текста до символов (между символами) \n
источник

Э

Эдем in RubyRush
источник

R

Roux in RubyRush
Эдем
Ну всё правильно написано, в чём вопрос тогда?
Фишка в том, что если я в регулярке ^ $ меняю на \A \z, то варнинга этого нет и модель без проблем инициализируется, но вот сама регулярка так не работает)
источник

Э

Эдем in RubyRush
Что значит не работает?
источник

VV

Vadim Venediktov in RubyRush
Рустем Арғын
Мое видео😂👍
Вы Анна?
источник

R

Roux in RubyRush
То есть получается что при \A \z данные валидны только в том случае, если введено то, что соответствует регулярке, исключительно в одной строке, а с ^ и $ можно накидывать кучу всего и оно будет проходить если соотвествует условию?
источник

R

Roux in RubyRush
Эдем
Что значит не работает?
Ну вот пример с циферками - https://regexr.com/5gejv
Если мы заменим на \A и \z, то это работать не будем, хоть мы просто вводим парочку чисел подряд
источник

Э

Эдем in RubyRush
\A и \z — матчит строку (string), а ^ и $ матчит строчку (line)
источник

Э

Эдем in RubyRush
Roux
Ну вот пример с циферками - https://regexr.com/5gejv
Если мы заменим на \A и \z, то это работать не будем, хоть мы просто вводим парочку чисел подряд
Это Руби?
источник

Э

Эдем in RubyRush
В Руби нет ключа /g
источник

R

Roux in RubyRush
А разве имеет значение в каком онлайн интерпритаторе тестить регулярки?
источник

Э

Эдем in RubyRush
В разных языках регулярки по-разному реализованы
источник

Э

Эдем in RubyRush
Открывали ссылку?

"111\n<script>hack;</script>".match?(/^111$/)
# => true

"111\n<script>hack;</script>".match?(/\A111\z/)
# => false


Х.з. как более наглядно изобразить
источник

R

Roux in RubyRush
Опа, похоже я сильно дурачек😅 Думал они особняком стоят и везде работают одинаково
источник

Э

Эдем in RubyRush
Нет, есть даже сборные таблицы матчеров всяких, где для разных языков свои уточнения написаны
источник

VV

Vadim Venediktov in RubyRush
Roux
Опа, похоже я сильно дурачек😅 Думал они особняком стоят и везде работают одинаково
Не обзывайте себя, учимся же тут
источник