ruby-on-rails - signo - que significa la doble barra//
¿Cómo se puede devolver todo después de la última barra(/) en una cadena de Ruby (7)
No creo que una expresión regular sea una buena idea, ya que la tarea es sencilla:
irb(main):001:0> s = ''https://www.facebook.com/hackerbob''
=> "https://www.facebook.com/hackerbob"
irb(main):002:0> s.split(''/'')[-1]
=> "hackerbob"
Por supuesto, también podría hacerlo usando expresiones regulares, pero es mucho menos legible:
irb(main):003:0> s[/([^//]+)$/]
=> "hackerbob"
Tengo una cadena que quisiera que todo después de la última /
sea devuelto.
Por ejemplo, para https://www.example.org/hackerbob
, debería devolver "hackerbob"
.
Puede probar /[a-zA-Z◆+:// icono de la línea de la vista de la marca de agua de la línea de seguridad o cualquier otra URL similar. Una gran herramienta para usar para expresiones regulares es http://www.rubular.com
Seguro que puede:
string = ''https://www.facebook.com/hackerbob''
string =~ /^https?:////www/.facebook/.com//(.*)/
$1
Una muestra mas
str = ''https://www.facebook.com/hackerbob''
ending = str.match(/.com//(.*)/)
p ending[1]
Utilízalo
1.9.3p194 :039 > line = ''https://www.facebook.com/hackerbob''
1.9.3p194 :039 > line.match(/.com//(/w+$)/)[1] # => "hackerbob"
Utilice la herramienta adecuada para el trabajo:
require ''uri''
url = "https://www.facebook.com/hackerbob"
URI.parse(url).path[1..-1] # => "hackerbob"
Puede usar este
subject = /(//)([^//]+)/Z/i.match(subject)
if match
# match start: match.begin(0)
# match end (exclusive): match.end(0)
# matched text: match[0]
# backreference n start: match.begin(n)
# backreference n end (exclusive): match.end(n)
# backreference n text: match[n]
else
# Match attempt failed
end