当我在regexr.com中尝试时,正则表达式模式有效
pattern = %r{(["'])(?:\\\1|[^\1])*?\1}
string = %Q(var msg = 'hello' + 'world')
string.gsub(pattern, '<span>\1</span>')
我期望输出为:
"var msg = <span>'hello'</span> + <span>'world'</span>"
但是相反,我得到了:
# => "var msg = <span>'</span> + <span>'</span>"
您是否不认为自己在打印和捕获错误。它应该是
pattern = %r{(["'])(\\\1|[^\1]*?)\1}
# ^^
# ||
#(This will capture the string hello etc. which are after quotes)
string = %Q(var msg = 'hello' + 'world')
string.gsub(pattern, '<span>\1\2\1</span>')
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句