Ruby 请问用正则时,如何批量对特殊字符进行转义

wilikeit · 2020年12月10日 · 最后由 wilikeit 回复于 2020年12月10日 · 272 次阅读

比如:

t='[1]abc,def'
puts t=~/\[1\]/  

[] 这种特殊字符少了,用\还好,要是多了就麻烦,请问有什么批量转义的方法吗,类似于 fgrep 命令会把 () [] 这种正则 符号当作普通字符

Regexp.escape('\*?{}.') #=> \\\*\?\{\}\.

spike76 回复
irb(main):010:0>  t='1'
=> "1"
irb(main):011:0> t=~/[12]/
=> 0
irb(main):012:0> t=~%r|#{Regexp.escape('[12]')}|
=> nil
irb(main):013:0> %r|#{Regexp.escape('[12]')}|
=> /\[12\]/

这样吗,ruby 正则太奇艺了

需要 登录 后方可回复, 如果你还没有账号请 注册新账号