如何在 ruby 中使用正则表达式拆分字符串

How to split string using regexp in ruby

我需要根据布尔运算符拆分我的字符串。

现在我正在使用

.split(/(.+?)((?: AND | OR | NOT ))/).reject(&:empty?).reject(&:blank?)

在此方法中,如果字符串以布尔运算符开头,则不会拆分。

测试字符串

  1. a 和 b

  2. AND b

返回输出

  1. ["a","AND","b"]

  2. ["AND b"]

我错过了什么

你可以使用 scan:

str.scan(/\w+/)
#=> ["Country", "blue", "of", "origin"]

这不仅适用于逗号,还适用于任何非数字、非字母字符(_ 除外)。

更新

仔细查看您想要的输出,您似乎希望保留逗号之间的空格:

I want a desired output like this.

[Country ,blue,of, origin]

如果是这样,请改用它:

str.scan(/[\w\s]+/)
#=> ["Country ", "blue", "of", " origin"]

这是将字符串转换为数组而不拆分的解决方案

str = "Country ,blue,of, origin"

 Array(str.chars.join(""))