Rubyで正規表現を使ってscanを使ってるコードで
"I my me mine 1 2 3 4".scan(/w+/)
# ["I", "my", "me", "mine", "1", "2", "3", "4"]
と文字列を配列に分割できますが
"I my me mine 1 2 3 4".scan(/p{Word}+/)
# ["I", "my", "me", "mine", "1", "2", "3", "4"]
でもできます
\p{Word}ってなんだと思って調べました
ドキュメントによるとUnicode プロパティによる文字クラス指定らしいです
正規表現
これ
Onigmo/UnicodeProps.txt at master · k-takata/Onigmo
に書いてあるものは使えるそうです
str = "I my me mine 1 2 3 4"
p str.scan(/p{Word}+/)
# ["I", "my", "me", "mine", "1", "2", "3", "4"]
p str.scan(/p{Digit}+/)
# ["1", "2", "3", "4"]
p str.scan(/p{Upper}+/)
# ["I"]
と他にも使えそうなのがあります