我正在尝试查找句子中的最后一个标点符号或空格字符。
鉴于我有这句话,"Hello! What is your name?"
我希望正则表达式返回 ?
的索引, 但我的正则表达式返回 !
的索引
我的尝试:
> s = "Hello! What is your name?"
> s =~ /([[:punct:]\s])/
> puts $+
!
=> nil
我相信$+
返回最高匹配,即最后一个匹配,但它只匹配第一个。
想法? 提前致谢!
最佳答案
要查找最后一个匹配项,请使用 rindex
:
s = "Hello! What is your name?"
i = s.rindex(/[[:punct:]]/)
puts i
结果:
24
在线查看它:ideone
关于 ruby 正则表达式 : Find the last punctuation,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8001183/