在多行分割Ruby正则expression式

这可能不是你期望的问题! 我不想要一个正则expression式匹配的正则expression式; 相反,我想写一个长的正则expression式,为了便于阅读,我想分割成多行代码。

就像是:

"bar" =~ /(foo| bar)/ # Doesn't work! # => nil. Would like => 0 

可以这样做吗?

您需要使用/x修饰符,它启用自由间距模式 。

使用%r和x选项是最好的方法。

从github ruby​​风格指南看这个例子

 regexp = %r{ start # some text \s # white space char (group) # first group (?:alt1|alt2) # some alternation end }x 

https://github.com/styleguide/ruby

您可以使用:

 "bar" =~ /(?x)foo| bar/