如何将正则表达式分解为多行?

use*_*255 4 ruby ruby-on-rails-3

我在rails应用程序中构建了一个自定义验证器,确保地址格式如下:

收件人姓名:

地址第一行:

地址第2行:

市:

州:

邮政编码:

- 要么 -

银行帐号:

银行路由号码:

银行账户类型:

我已经实现了以下帮助器方法来检查地址是否与这些模式之一不匹配:

def malformed_check(address)
  address !~ /^Recipient Name:(.*)$\n^Address Line 1:(.*)$\n(^Address Line 2:(.*)$\n)?^City:(.*)$\n^State:(.*)$\n^ZIP Code:(.*)$/
end

def malformed_ach(address)
  address !~ /^Bank Account Number:(.*)$\n^Bank Routing Number:(.*)$\n^Bank Account Type:(.*)$/
end
Run Code Online (Sandbox Code Playgroud)

我的问题是:如何跨多行打破我的正则表达式?

我们的编码标准中每行最多120个字符.

Dav*_*vid 5

/x自由空间修改器可以让你有在多行正则表达式,如

address !~ /^Recipient Name:(.*)$\n
            ^Address Line 1:(.*)$\n
           (^Address Line 2:(.*)$\n)?
            ^City:(.*)$\n
            ^State:(.*)$\n
            ^ZIP Code:(.*)$/x
Run Code Online (Sandbox Code Playgroud)