首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Ruby regexp抛出无效的backref编号/名称错误

Ruby regexp抛出无效的backref编号/名称错误
EN

Stack Overflow用户
提问于 2013-03-12 03:32:38
回答 5查看 986关注 0票数 1

我当前的代码旨在遍历一个庞大的.csv文件,并将某些日期重新格式化为SQL Datetime友好的格式。它们当前是DDMMYYYY,我希望它们是YYYYMMDD,这是我采取的方法(取自一个不同的SO问题):

代码语言:javascript
运行
复制
CSV.foreach('file.csv') do |x|
if x[0] == "1"
    x.gsub(/([0-9]{2})-+([0-9]{2})-+([0-9]{4})/,/\3-\2-\1/)

else
end

这会抛出错误"invalid backref number/name“。

文档告诉我,我可以通过使用?<name>定义组并使用\k<name>反向引用它们来避免这种情况,但我所有的尝试都以失败告终。有人可以告诉我它应该是什么样子的吗,或者提供一个替代的解决方案?

EN

Stack Overflow用户

发布于 2015-07-21 07:32:56

我认为值得补充的是,虽然上面的答案是正确的,但它们没有解决OP得到的错误。如果第二个参数是正则表达式,则此错误不是问题。事实上,在上面的例子中,ruby从未真正调用过gsub方法,因为第二个参数中的正则表达式不会被解析。反斜杠后跟任何数字都会导致此错误。它是无效的正则表达式。

票数 2
EN
查看全部 5 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15347009

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档