我有一个Ruby Regexp
对象,其中包含注释和空格(自由空间模式),我想将其操作为MySQL兼容(REGEXP)形式。
示例:
r = /(?x)
# Some comment
example.com|
subdomain.example.me
/
所需的正则表达式(没有注释或空格):
/example.com|subdomain.example.me/
更多背景信息:
我有一个使用\ x属性构建的正则表达式,以启用自由间隔模式。此模式忽略正则表达式中的空格和注释。
我有一个使用\ x属性构建的Regexp对象,在ruby中使用时可以正常工作。但是我想在mySQL'REGEXP'查询中使用这个正则表达式,它不支持自由模式(据我所知)。
答案 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
限制在新的正则表达式区域中没有锐利。