在ruby中用正则表达式提取字符串中的数字

Bol*_*olo -1 ruby

我有这个字符串

url = "#AppDashboardPlace:p=io.transporterapp.deep.test1&appid=4975603106871514996"
Run Code Online (Sandbox Code Playgroud)

我想得到 4975603106871514996

我试过了

url.to_s[/\appid\=(.*?)\&/, 1]
=> nil
Run Code Online (Sandbox Code Playgroud)

Mar*_*eed 5

你的正则表达式不匹配,因为&appid值之后没有.试试这个:

url.to_s[/appid=(\d+)/,1]
Run Code Online (Sandbox Code Playgroud)

如果你将匹配的部分留在.*?后面没有任何内容,它将匹配可能的字符串的最小量,即空字符串.如果您知道appid是字符串的最后一部分,那么您可以在.*没有?它的情况下使用,但最好是精确的,并指定您要查找的是一系列一个或多个(+)十进制数字(\d).