我需要根据布尔运算符拆分我的字符串。
现在我正在使用
.split(/(.+?)((?: AND | OR | NOT ))/).reject(&:empty?).reject(&:blank?)
在此方法中,如果字符串以布尔运算符开头,则不会拆分。
经过测试的字符串
a AND b
AND b
返回输出
[ “一”, “AND”, “B”]
[“AND b”]
我错过了什么。
答案 0 :(得分:2)
您可以使用scan
:
str.scan(/\w+/)
#=> ["Country", "blue", "of", "origin"]
这不仅适用于逗号,也适用于任何非数字非字母字符(_
除外)。
<强>更新强>
仔细查看所需的输出,似乎要保留逗号之间的空格:
我想要这样的输出。
[国家,蓝色,原产地]
如果是这样,请改用:
str.scan(/[\w\s]+/)
#=> ["Country ", "blue", "of", " origin"]
答案 1 :(得分:0)
这是解决方案将字符串转换为不带分割的数组
str = "Country ,blue,of, origin"
Array(str.chars.join(""))