如何从正则表达式中提取字符串的最后部分?字符串的最后部分也始终是3位数字。如何从url字符串中提取数字ruby
"/gdc/md/vin06hdpq8442qocut9aoih8q5j5k43u/obj/185"
如何从正则表达式中提取字符串的最后部分?字符串的最后部分也始终是3位数字。如何从url字符串中提取数字ruby
"/gdc/md/vin06hdpq8442qocut9aoih8q5j5k43u/obj/185"
喜欢的东西:/\d+$/
应该得到所有数字的字符串
就切过去的3个字符的结尾:
str = "/gdc/md/vin06hdpq8442qocut9aoih8q5j5k43u/obj/185"
p str[-3,3] # => "185"
或两者与海峡组合[/ \ d {3} $ /]
或者str [-3 ..- 1]
这么多的方法来皮肤的字符串:)
有很多不同的方式,你可以做到这一点。
您可以使用正则表达式来匹配所有尾部数字(/\d+$/
)或仅最后三个尾部数字(/\d{3}$/
),具体取决于您想要的行为,以防字符串出于某种原因的位数超出您的预期:
str.match(/\d+$/)[0]
#=> "185"
str.match(/\d{3}$/)[0]
#=> "185"
另一种选择是将字符串分割成一个阵列,利用/
作为隔膜,然后抓住的最后一个元素(其中将包含一切过最后/
。)
str.split("/").last
#=> "185"
或者你可以使用索引使用的事实,串可以被访问,很像数组,并用它来抓取的最后三位数字:
str[-3, 3]
#=> "185"
除非你这样做是数千次循环中,任何性能差异都是微不足道的,因此您可以选择具有最强健性和易读性的选项。
请注意,在所有四种情况下,您将返回一个字符串,因此如果您打算将此数字用作整数,则需要先使用#to_i
进行转换。
我liiike很多 – Seal