首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何从url字符串红宝石中提取数字

如何从url字符串红宝石中提取数字
EN

Stack Overflow用户
提问于 2015-10-23 22:59:16
回答 4查看 1K关注 0票数 0

如何用正则表达式提取字符串的最后一部分?字符串的最后一部分也将是一个3位数的数字。

"/gdc/md/vin06hdpq8442qocut9aoih8q5j5k43u/obj/185"

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2015-10-23 23:00:49

类似于:/\d+$/应该得到字符串末尾的所有数字

票数 2
EN

Stack Overflow用户

发布于 2015-10-23 23:06:26

只需切片最后3个字符:

代码语言:javascript
运行
复制
str = "/gdc/md/vin06hdpq8442qocut9aoih8q5j5k43u/obj/185"
p str[-3,3] # => "185"
票数 2
EN

Stack Overflow用户

发布于 2015-10-24 08:26:19

有许多不同的方法可以实现这一点。

您可以使用正则表达式来匹配所有尾随数字(/\d+$/)或仅匹配最后三个尾随位数(/\d{3}$/),这取决于您想要的行为,以防由于某种原因字符串的数字比您预期的要多:

代码语言:javascript
运行
复制
str.match(/\d+$/)[0]
#=> "185"

str.match(/\d{3}$/)[0]
#=> "185"

另一个选项是将字符串拆分为一个数组,使用/作为分隔符,然后抓取最后一个元素(它将包含最后一个/之后的所有内容)。

代码语言:javascript
运行
复制
str.split("/").last
#=> "185"

或者您可以使用这样的事实:可以使用索引来访问子字符串,就像数组一样,并使用它获取最后三个数字:

代码语言:javascript
运行
复制
str[-3, 3]
#=> "185"

除非您在循环中执行了数千次,否则任何性能差异都将是微不足道的,因此您可以选择提供最健壮和最清晰的选项。

注意,在所有四种情况下,都将返回一个字符串,因此,如果您打算使用这个数字作为整数,那么首先需要使用#to_i来转换它。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33312622

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档