我需要根據布爾運算符分割我的字符串。如何在ruby中使用正則表達式分割字符串
現在,我使用
.split(/(.+?)((?: AND | OR | NOT))/).reject(&:empty?).reject(&:blank?)
在這種方法中,如果字符串與布爾運算符啓動時,它沒拆。
測試字符串
A和B
和B
返回的輸出
[ 「一」, 「AND」,「B 「]
[ 「和B」]
我是什麼遺漏。
我需要根據布爾運算符分割我的字符串。如何在ruby中使用正則表達式分割字符串
現在,我使用
.split(/(.+?)((?: AND | OR | NOT))/).reject(&:empty?).reject(&:blank?)
在這種方法中,如果字符串與布爾運算符啓動時,它沒拆。
測試字符串
A和B
和B
返回的輸出
[ 「一」, 「AND」,「B 「]
[ 「和B」]
我是什麼遺漏。
你可以使用scan
:
str.scan(/\w+/)
#=> ["Country", "blue", "of", "origin"]
這將工作不僅用逗號,但任何非數字,非字母字符(除_
)。
UPDATE
在您需要的輸出仔細觀察,它似乎要保持逗號之間的空間:
我想這樣的期望輸出。
[國家,藍色,的,起源]
如果是這樣,而不是使用該:
str.scan(/[\w\s]+/)
#=> ["Country ", "blue", "of", " origin"]
下面是解字符串轉換爲陣列而不分裂
str = "Country ,blue,of, origin"
Array(str.chars.join(""))
你能解釋一下爲什麼嗎? – Ursus
你不轉換字符串,你只能創建不同的字符串。你的問題沒有道理。 –
你的意思是你想要:'['縣','藍','','起源']'? –