考虑:
regex1 = /\A[a-z0-9\-\_]+\z/
regex2 = remove_anchors(regex1) # => /[a-z0-9\-\_]+/
如何实现一个remove_anchors
函数编程删除任何锚(\A
,\z
,^
,$
从)regex1
,生产regex2
?甚至可以在Ruby中修改现有的正则表达式吗?
您可以使用以下功能:
def remove_anchors(regex)
pattern = regex.source.gsub(/\A(?:\\A|\^)|(?:\\[zZ]|\$)\z/, '')
return Regexp.new(pattern);
end
这是一个IDEONE演示
regex文字符号可/.../
编译regex,并可以通过source属性获得其字符串模式。用gsub
,锚喜欢^
,$
,\A
并且\z
可以从字符串图案被移除。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句