从Regex中删除自由间距(空格和注释)

时间:2015-02-18 17:58:21

标签: mysql ruby regex

我有一个Ruby Regexp对象,其中包含注释和空格(自由空间模式),我想将其操作为MySQL兼容(REGEXP)形式。

示例:

r = /(?x)
      # Some comment
      example.com|
      subdomain.example.me
/

所需的正则表达式(没有注释或空格):

/example.com|subdomain.example.me/

更多背景信息:

我有一个使用\ x属性构建的正则表达式,以启用自由间隔模式。此模式忽略正则表达式中的空格和注释。

我有一个使用\ x属性构建的Regexp对象,在ruby中使用时可以正常工作。但是我想在mySQL'REGEXP'查询中使用这个正则表达式,它不支持自由模式(据我所知)。

1 个答案:

答案 0 :(得分:1)

r = /(?x)
      # Some comment
       example.com|
             subdomain.example.me
     /
        puts r     #=> (?x-mi:
                   #    # Some comment
                   #     example.com|
                   #          subdomain.example.me
                   #  )

        puts r.to_s.gsub(/#.*?\n|^\(\?x-mi:|\)$|\s/,"")   
                   #=>example.com|subdomain.example.me

限制在新的正则表达式区域中没有锐利。