Ruby on rails 正则表达式挑战
我只想抓住这根绳子的一根:Ruby on rails 正则表达式挑战,ruby-on-rails,ruby,regex,ruby-on-rails-3,Ruby On Rails,Ruby,Regex,Ruby On Rails 3,我只想抓住这根绳子的一根: Serving Size: 1 cup, halves, Calories: 48.6, Fat: 0.5g, Carbs: 11.7g, Protein: 1g 还有很多人喜欢它。尽管每个字符串都有不同的变量。例如,上面的字符串可能如下所示: Serving Size: 100 oz, Calories: 48.6, Fat: 0.5g, Carbs: 11.7g, Protein: 1g (?<=Serving Size:\s\d*\s) 等等 所以,
Serving Size: 1 cup, halves, Calories: 48.6, Fat: 0.5g, Carbs: 11.7g, Protein: 1g
还有很多人喜欢它。尽管每个字符串都有不同的变量。例如,上面的字符串可能如下所示:
Serving Size: 100 oz, Calories: 48.6, Fat: 0.5g, Carbs: 11.7g, Protein: 1g
(?<=Serving Size:\s\d*\s)
等等
所以,我现在只想得到绳子的“oz”或“cup”部分
我尝试过的正则表达式如下所示:
Serving Size: 100 oz, Calories: 48.6, Fat: 0.5g, Carbs: 11.7g, Protein: 1g
(?<=Serving Size:\s\d*\s)
(?这个怎么样
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"
s=“份量:1杯,一半,卡路里:48.6,脂肪:0.5克,碳水化合物:11.7克,蛋白质:1克”
正则表达式=/服务大小:\s*(?\d+)\s*(?\w+)/
m=s.match(正则表达式)#=>#
m['units']#=>“杯”
m['amount']#=>“1”
这个怎么样
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"
s=“份量:1杯,一半,卡路里:48.6,脂肪:0.5克,碳水化合物:11.7克,蛋白质:1克”
正则表达式=/服务大小:\s*(?\d+)\s*(?\w+)/
m=s.match(正则表达式)#=>#
m['units']#=>“杯”
m['amount']#=>“1”
注意:这回答了正则表达式不起作用的原因。Sergio Tulentsev的答案已经为如何获得所需结果提供了一个很好的解决方案
如果我正确地解释了您的意图,(?注意:这回答了正则表达式不工作的原因。Sergio Tulentsev的回答已经为如何获得所需结果提供了一个很好的解决方案
如果我正确解释了您的意图,(?
使用捕获组,然后使用$1
、$2
、$3
等访问它们
使用捕获组,然后使用$1
、$2
、$3
等访问它们。其中包括数字。我正在尝试隔离度量值类型。度量值类型是什么?“服务大小”?它是字符串的“oz”或“cup”部分。我希望能够隔离这一部分并将其粘贴到一个名为“测量类型”。份量应该是具体的数字,但我已经能够分离出那一位。@ninja08:所以m['units']
对你来说不够好,是吗?你需要完成这项工作还是喜欢它?:)@Yoshiji先生:这叫“命名捕获”“如果你想了解更多。这包括数字。我正在尝试分离度量值类型。度量值类型是什么?”服务大小?它是字符串的“oz”或“cup”部分。我希望能够分离出这一部分,并将其粘贴到一个名为“measure\u type”的变量中”。具体的份量应该是数字,但我已经能够分离出那一部分。@ninja08:所以m['units']
对你来说不够好,是吗?你需要完成这项工作还是喜欢它?:)@Yoshiji先生:这叫“命名捕获”如果您想了解更多信息。不允许使用可变长度查找?最好在,?[]*(\w[\w]*(\w[\w]*)(?不允许使用可变长度查找?最好在,?[]*(\w[\w]*)上进行拆分?