Ce n'est peut-être pas tout à fait la question à laquelle vous vous attendez! Je ne veux pas d'une expression régulière qui correspondra à des sauts de ligne; au lieu de cela, je veux écrire une longue expression régulière que, pour plus de lisibilité, je voudrais diviser en plusieurs lignes de code.
Quelque chose comme:
"bar" =~ /(foo|
bar)/ # Doesn't work!
# => nil. Would like => 0
Peut-on le faire?
Vous devez utiliser le /x
modificateur, qui active mode d'espacement libre .
Dans ton cas:
"bar" =~ /(foo|
bar)/x
L'utilisation de% r avec l'option x est la manière préférée de le faire.
Voir cet exemple dans le github Ruby style guide
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
vous pouvez utiliser:
"bar" =~ /(?x)foo|
bar/