Chm*_*nik 3 ruby regex rubocop
我正在使用gsub带有正则表达式的方法:
@text.gsub(/(-\n)(\S+)\s/) { "#{$2}\n" }
Run Code Online (Sandbox Code Playgroud)
输入数据示例:
"The wolverine is now es-
sentially absent from
the southern end
of its European range."
Run Code Online (Sandbox Code Playgroud)
应该返回:
"The wolverine is now essentially
absent from
the southern end
of its European range."
Run Code Online (Sandbox Code Playgroud)
该方法工作正常,但 rubocop 报告和攻击:
避免使用 Perl 风格的反向引用。
任何想法如何使用MatchDataobject 而不是重写它$2?
如果你想使用Regexp.last_match:
@text.gsub(/(-\n)(\S+)\s/) { Regexp.last_match[2] + "\n" }
Run Code Online (Sandbox Code Playgroud)
或者 :
@text.gsub(/-\n(\S+)\s/) { Regexp.last_match[1] + "\n" }
Run Code Online (Sandbox Code Playgroud)
请注意,在gsub涉及逻辑时应使用块 in 。如果没有逻辑,将第二个参数设置为"\\1\n"or'\1' + "\n"就可以了。
| 归档时间: |
|
| 查看次数: |
1029 次 |
| 最近记录: |