我正在尝试从 Ruby 中的字符串中提取单词。例如,如果我有这个:
“12jdfndjseven456sfji三”
我想得到一个[“七”,“三”]的数组。我正在寻找的唯一单词是数字一...九,所以不仅仅是任何单词。有没有办法扫描这些特定的单词,然后在出现时映射它们?
我也希望它们按照它们在字符串中出现的顺序排列,所以不要只想执行 if/include ,因为我认为这会将它们按照扫描它们的顺序排列(除非我错了?)
我想也许你可以进行正则表达式扫描,但我对正则表达式很糟糕,所以不知道从哪里开始,因为它是单词而不是数字。
(为了清晰起见进行了编辑)
如果您有目标单词数组,您可以使用管道
|
连接单词数组并使用此正则表达式进行扫描
string = "12jdfndjseven456sfjithree"
words = %w[one two three four five six seven eight nine]
pattern = %r{#{words.join('|')}}
string.scan(pattern)
# => ["seven", "three"]