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

wilikeit · December 10, 2020 · Last by wilikeit replied at December 10, 2020 · 258 hits

比如:

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

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

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

Reply to 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 正则太奇艺了

You need to Sign in before reply, if you don't have an account, please Sign up first.