【发布时间】:2016-02-02 20:16:21
【问题描述】:
我正在寻找的正则表达式必须能够处理不同的模式。
这是三种不同的模式。
"10.1234/altetric55,Awesome Steel Chair,1011-2513"
"\"Sporer, Kihn and Turner\",2885-6503"
"Bartell-Collins,1167-8230"
我必须将此正则表达式传递给 ruby 拆分方法。
line.split(/regular_expression/)
这个想法是在有逗号时拆分测试,除非(如在第二个表达式中)逗号是文本的一部分
谢谢
【问题讨论】:
-
见Regex to pick commas outside of quotes。它应该可以解决您的问题。
-
请为三个字符串中的每一个显示您想要的输出。
-
CSV 解析器有什么问题?请参阅this IDEONE demo 或this one。
-
@stribizhev 预期输出是 ["10.1234/altetric55", "Awesome Steel Chair", "1011-2513] ["Sporer, Kihn and Turner", "2885-6503"] ["Bartell -柯林斯”,“1167-8230”]
-
我推荐使用 Ruby 内置的 CSV 类。它旨在处理您显示的那种逗号分隔值,包括那些在引号内嵌入逗号的值。不要尝试使用正则表达式,而是依赖预先编写的、经过良好测试的代码。
标签: ruby-on-rails ruby regex