Nic*_*Res 1 ruby regex ruby-on-rails ruby-on-rails-3
我试图只抓住这个字符串中的一个:
Serving Size: 1 cup, halves, Calories: 48.6, Fat: 0.5g, Carbs: 11.7g, Protein: 1g
Run Code Online (Sandbox Code Playgroud)
还有很多人喜欢它.虽然每个字符串都有不同的变量.例如,上面的字符串可能如下所示:
Serving Size: 100 oz, Calories: 48.6, Fat: 0.5g, Carbs: 11.7g, Protein: 1g
Run Code Online (Sandbox Code Playgroud)
等等...
所以,我现在正试图获得字符串中的"oz"或"cup"部分.
我试过的正则表达式看起来像这样:
(?<=Serving Size:\s\d*\s)
Run Code Online (Sandbox Code Playgroud)
虽然在rubular中它一直说"无效".
虽然如果我这样做
(?<=Serving Size:)\s\d*\s
Run Code Online (Sandbox Code Playgroud)
它将完美匹配数字...我正在尝试排除数字并匹配度量类型.
我怎样才能做到这一点?
这个如何?
s = "Serving Size: 1 cup, halves, Calories: 48.6, Fat: 0.5g, Carbs: 11.7g, Protein: 1g"
regex = /Serving Size:\s*(?<amount>\d+)\s*(?<units>\w+)/
m = s.match(regex) # => #<MatchData "Serving Size: 1 cup" amount:"1" units:"cup">
m['units'] # => "cup"
m['amount'] # => "1"
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
134 次 |
| 最近记录: |