扫描字符串中不带空格的单词

问题描述 投票:0回答:1

我正在尝试从 Ruby 中的字符串中提取单词。例如,如果我有这个:

“12jdfndjseven456sfji三”

我想得到一个[“七”,“三”]的数组。我正在寻找的唯一单词是数字一...九,所以不仅仅是任何单词。有没有办法扫描这些特定的单词,然后在出现时映射它们?

我也希望它们按照它们在字符串中出现的顺序排列,所以不要只想执行 if/include ,因为我认为这会将它们按照扫描它们的顺序排列(除非我错了?)

我想也许你可以进行正则表达式扫描,但我对正则表达式很糟糕,所以不知道从哪里开始,因为它是单词而不是数字。

(为了清晰起见进行了编辑)

arrays ruby-on-rails ruby string split
1个回答
0
投票

如果您有目标单词数组,您可以使用管道

|
连接单词数组并使用此正则表达式进行扫描

string = "12jdfndjseven456sfjithree"

words = %w[one two three four five six seven eight nine]

pattern = %r{#{words.join('|')}}

string.scan(pattern)
# => ["seven", "three"]
© www.soinside.com 2019 - 2024. All rights reserved.