Ruby字符串分为单词,忽略所有特殊字符:更简单的查询

Kar*_*rma 1 ruby string split

我需要在任何地方使用非单词字符将查询拆分为单词.例如:

query = "I am a great, boy's and I like! to have: a lot-of-fun and @do$$nice&acti*vities+enjoy good ?times."
Run Code Online (Sandbox Code Playgroud)

应输出:

["I", "am", "a", "great", "", "boy", "s", "and", "I", "like", "", "to", "have", "", "a", "lot", "of", "fun", "and", "", "do", "", "nice", "acti", "vities", "enjoy", "good", "", "times"] 
Run Code Online (Sandbox Code Playgroud)

这样做的伎俩,但有一个更简单的方法吗?

query.split(/[ ,'!:\\@\\$\\&\\*+?.-]/)
Run Code Online (Sandbox Code Playgroud)

saw*_*awa 6

query.split(/\W+/)
# => ["I", "am", "a", "great", "boy", "s", "and", "I", "like", "to", "have", "a", "lot", "of", "fun", "and", "do", "nice", "acti", "vities", "enjoy", "good", "times"]

query.scan(/\w+/)
# => ["I", "am", "a", "great", "boy", "s", "and", "I", "like", "to", "have", "a", "lot", "of", "fun", "and", "do", "nice", "acti", "vities", "enjoy", "good", "times"]
Run Code Online (Sandbox Code Playgroud)

这与预期的输出不同,因为它不包括空字符串.

  • 如果你能解释一下这两点,我也会很棒.谢谢. (2认同)