首页 > 解决方案 > 用正则表达式匹配ruby中的字符串后获取数字

问题描述

我正在尝试从字符串中获取 tracking_number 的数量。

string = '{:rate_type=>"PAYOR_ACCOUNT_PACKAGE", :rated_weight_method=>"ACTUAL", tracking_number=>"795856589804"}, :group_number=>"0", :package_rating=>{:actual_rate_type=>"PAYOR_ACCOUNT_PACKAGE", :package_rate_details=>{:rate_type=>"PAYOR_ACCOUNT_PACKAGE", :rated_weight_method=>"ACTUAL", :minimum_charge_type=>"CUSTOMER_FREIGHT_WEIGHT", :billing_weight=>{:units=>"LB", :value=>"1.0"}}'

我已经尝试过/tracking_number=>['"]((.*?)['"])*/,但在比赛结束后得到了所有的字符串。

任何人都可以帮我解决这个问题。

我在https://rubular.com/r/ZcmJinTHDQSDsZ试过这个

我想要的输出是795856589804

标签: regexrubystring

解决方案


从正则表达式的末尾删除*。这就是您在匹配后获得所有字符串的原因。

如果您只想获取数字部分,请使用此正则表达式。

/tracking_number=>"(\d+)"/

推荐阅读