[英]extract number in string with regex in ruby
我有这串
url = "#AppDashboardPlace:p=io.transporterapp.deep.test1&appid=4975603106871514996"
我想得到4975603106871514996
我试过了
url.to_s[/\appid\=(.*?)\&/, 1]
=> nil
您的正则表达式不匹配,因为appid值后没有&
。 尝试这个:
url.to_s[/appid=(\d+)/,1]
如果将匹配的部分留为.*?
后面没有任何内容,它将匹配可能的最小字符串量,即空字符串。 如果您知道appid是字符串的结尾,那么可以使用.*
而不使用?
,但最好精确一点,并指定要查找的是一系列一个或多个( +
)十进制数字( \\d
)。
您可以将String#match
与\\ d正则表达式匹配器一起使用,以在\\d+
上进行匹配,这意味着一个或多个数字。
url = "#AppDashboardPlace:p=io.transporterapp.deep.test1&appid=4975603106871514996"
match = url.match(/appid\=(\d+)/)
# => #<MatchData "appid=4975603106871514996" 1:"4975603106871514996">
puts match[0]
# => "appid=4975603106871514996"
puts match[1]
# => "4975603106871514996"
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.