繁体   English   中英

Ruby正则表达式中的语法错误包含@

[英]Syntax error in Ruby regexp containing @

我试图取代的特殊字符,如出现/:与等在字符串*/**:*分别。

str.gsub!(/([;.\\/?:@&=+$,{}|^\[\]`<>#%"'])/, '*\1*')

但是,我得到一个SyntaxError

`@&' is not allowed as an instance variable name
syntax error, unexpected end-of-input, expecting tSTRING_CONTENT or tSTRING_DBEG or tSTRING_DVAR or tSTRING_END
str.gsub!(/([;.\\/?:@&=+$,{}|^\[\]`<>#%"'])/, '*...
                     ^ (SyntaxError)

我试图将该regexp定义为字符串,并使用RegExp.quote(...)进行转换,但无济于事。 任何建议将不胜感激!

您只是忘了在正则表达式中转义/符号:

str.gsub!(/([;.\\\/?:@&=+$,{}|^\[\]`<>#%"'])/, '*\1*')
                 ^

否则,应使用@后的有效变量名。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM