如何逃避保留字符?我想这样:
str = "http://something.tld/"
成为这样的东西:
http\:\/\/something.tld\/
我的代码不起作用。
str.gsub(/(?<foo>[\+\-\&\|\!\(\)\{\}\[\]\^\"\~\*\?\:\\\/])/, '\\k<foo>' )
保留字符为:
+ - && || ! ( ) { } [ ] ^ " ~ * ? : \ /
答案 0 :(得分:1)
逃避规则真的围绕这个规则变得毛茸茸,但它仍然很简单,试试
str.gsub(/(?<foo>[\+\-\&\|\!\(\)\{\}\[\]\^\"\~\*\?\:\\\/])/, '\\\\\k<foo>' )
你会得到
"http\\:\\/\\/something.tld\\/"
不要担心双反斜杠,它们只是irb
尝试可视化此字符串中有真正的反斜杠。如果你问它的length
是25
,那就是我想要的。