Ответ 1
Вам нужно использовать модификатор /x
, который включает режим свободного пробела.
В твоем случае:
"bar" =~ /(foo|
bar)/x
Это не совсем то, что вы ожидаете! Я не хочу, чтобы регулярное выражение соответствовало разрыву строки; вместо этого, я хочу написать длинное регулярное выражение, которое для удобочитаемости я бы хотел разделить на несколько строк кода.
Что-то вроде:
"bar" =~ /(foo|
bar)/ # Doesn't work!
# => nil. Would like => 0
Можно ли это сделать?
Вам нужно использовать модификатор /x
, который включает режим свободного пробела.
В твоем случае:
"bar" =~ /(foo|
bar)/x
Использование% r с параметром x является предпочтительным способом сделать это.
Посмотрите этот пример из руководства по стилю github ruby.
regexp = %r{
start # some text
\s # white space char
(group) # first group
(?:alt1|alt2) # some alternation
end
}x
regexp.match? "start groupalt2end"
https://github.com/github/rubocop-github/blob/master/STYLEGUIDE.md#regular-expressions
вы можете использовать:
"bar" =~ /(?x)foo|
bar/