繁体   English   中英

使用Ruby正则表达式分割字符串

[英]Split string with Ruby regex

我们有一个CSV文件。 特定的列将具有许多条目,而这些条目将由换行符"\\n"分隔,但这没有发生。 受影响的列的样本数据如下。

30 units - R135                 50 units - R225                  80 units - R360

有没有一种方法可以将其分为三列? 列数不固定。 我猜我们将不得不使用许多空格字符(两个以上)来split条目。 我需要:

data = "that long string"
# Some operation
result = ["30 units - R135", "50 units - R225", "80 units - R360"]

我尝试过这样的事情。 但这没有用。 结果是相同的字符串。

a.split('/(\s){3,}/')

可以采用什么方法拆分数据?

像这样的声明

a.split('/(\s){3,}/')

会在出现字符串 /(\\s){3,}/情况下将字符串拆分为a (毫无疑问)在目标字符串中不存在任何位置,因此它保持不变。

您需要通过编写指定正则表达式

data = '30 units - R135                 50 units - R225                  80 units - R360'

result = data.split /\s{3,}/

p result

产量

["30 units - R135", "50 units - R225", "80 units - R360"]

正确的正则表达式是:

a.split(/\\s{3,}/)

一个测试正则表达式的好地方: http : //rubular.com/ (您可能不需要它,但我太喜欢它了,所以分享:))

暂无
暂无

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

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