Ruby 如何提取最后定界符后的子字符串?

Ruby 如何提取最后定界符后的子字符串?,ruby,regex,Ruby,Regex,我使用的是Ruby,我想编写一个函数,它接受一个以//分隔的分隔字符串str,并返回字符串的最后一部分,即字符串中最后一个//之后的部分。例如,给定一张//b///cd,它应该返回cd 我可以使用正则表达式来实现这一点吗?如果可以,我应该使用什么表达式?正如NHAHDH在他的文章中所写的那样,您可以使用/*\/\/*/ 在Ruby中,会是 regex = %r{.* # any character (0 up to infinit-times) till we fin

我使用的是Ruby,我想编写一个函数,它接受一个以//分隔的分隔字符串str,并返回字符串的最后一部分,即字符串中最后一个//之后的部分。例如,给定一张//b///cd,它应该返回cd

我可以使用正则表达式来实现这一点吗?如果可以,我应该使用什么表达式?

正如NHAHDH在他的文章中所写的那样,您可以使用/*\/\/*/

在Ruby中,会是

regex = %r{.*               # any character (0 up to infinit-times) till we find the last
           //               # two consecutive characters '/'
           (?<last_part>.*) # any character (0 up to infinit-times)
          }
string = 'a//b///cd'

puts regex.match(string)[:last_part]
#=> cd

您可以在ProgrammingRuby的一节中找到关于%r的信息。

这应该可以用/*\/\/.*/。不过,您需要选择第一个捕获组@NHAHDH为什么不写一个简单的答案让用户接受呢?@oldergod:请随意接受评论并写一个,因为我不懂Ruby本身的语言。@NHAHDH str.match/*\/\/././[1]@halfelf:str[%r{.*/.*/.},1]可能更好。