así que tengo algún tipo de URL internas: por ejemplo "/img/pic/Image1.jpg" o "/pic/Image1.jpg" o simplemente "Image1.jpg", y necesito para que coincida con este "Image1.jpg" en otras palabras, quiero unir la última secuencia de caracteres después de/o si no hay más que una secuencia de caracteres. ¡Gracias de antemano!Coincidir con la última palabra después de/
Respuesta
.*/(.*)
no funcionará si no hay/s.
([^/]*)$
debería funcionar si hay o no hay.
Pero '[\ s \ S] */(. *)' Would. – Gumbo
.*/([^/]*)
El grupo de captura coincide con la última secuencia después de /.
No coincidirá con 'Image1.jpg' –
La siguiente expresión haría el truco:.
/([\w\d._-]*)$
O incluso más fácil (pero creo que esto también se ha publicado a continuación antes de mí)
([^/]+)$
Algo así como */(*.) $ (los detalles dependen de si estamos hablando de Perl, o algún otro dialecto de expresiones regulares)
Primero. * coincide con todo (incluidas las barras). Luego hay una barra inclinada, luego está. * Que coincide con todo, desde esa barra hasta el final (es decir, $).
El * funciona codiciosamente de izquierda a derecha, lo que significa que cuando tiene varias barras diagonales, la primera. * Coincidirá con todas menos la última.
Su expresión regular * requiere * barra oblicua, por lo que' Image1.jpg' no coincidirá con –
En Rubí lo tanto se escribe
([^\/]*)$
expresiones regulares en Ruby son bastante universal y que puede probar que vivan aquí: http://rubular.com/ Por cierto: tal vez hay otra solución que no implica las expresiones regulares? E.g File.basenam(path)
(Ruby nuevamente)
Editar: profjim lo ha publicado antes.
Noté que dijiste en tus comentarios que estás usando javascript. En realidad no necesitas una expresión regular para esto y siempre pienso que es bueno tener una alternativa al uso de expresiones regulares.
var str = "/pic/Image1.jpg";
str.split("/").pop();
// example:
alert("/pic/Image1.jpg".split("/").pop()); // alerts "Image1.jpg"
alert("Image2.jpg".split("/").pop()); // alerts "Image2.jpg"
Actualmente no necesita regexp para esto.
s="this/is/a/test"
s.substr(s.lastIndexOf("/")+1)
=> test
y también funciona bien para las cadenas sin ningún /
porque entonces lastIndexOf devuelve -1.
s="hest"
s.substr(s.lastIndexOf("/")+1)
=> hest
una expresión regular simple que he probado:
\w+(.)\w+$
Aquí es un buen sitio puedes probarlo en: http://rubular.com/
- 1. cómo hacer coincidir la primera palabra después de una expresión con expresiones regulares?
- 2. Obtener la última palabra de un NSString
- 3. Reemplazar la última palabra en la cadena
- 4. ¿Extraer la última palabra en oración/cadena?
- 5. Seleccionar la última palabra en un contenedor
- 6. cómo eliminar la última palabra de la cadena usando JavaScript
- 7. C# Cómo colocar una coma después de cada palabra, pero la última en la lista
- 8. Keyup solo después de la última clave con jquery
- 9. expresión regular para conseguir todo después de la última barra
- 10. Coincidir con la negación
- 11. Expresión regular para encontrar la última palabra en la oración
- 12. Instrucción SQL para encontrar la última palabra en la cadena
- 13. sed solo reemplazando la última coincidencia de coincidencia - necesidad de coincidir con todos
- 14. Snowball Stemmer solo se deriva de la última palabra
- 15. Extracto de la última palabra de una cadena usando C#
- 16. eliminar la última palabra en el reparto de etiquetas por \
- 17. cómo reemplazar la última ocurrencia de una palabra en javascript?
- 18. Python: cortar la última palabra de una oración?
- 19. cadena transversal C: obtenga la última palabra de una cadena
- 20. Expresión regular para coincidir con la palabra exacta - Resaltar cadena de búsqueda
- 21. La última palabra en NSStrings: mutable e inmutable
- 22. Coincidir con la expresión regular
- 23. Buscar la última coincidencia con la expresión regular de python
- 24. obteniendo la última palabra en una cadena tokenizada en groovy
- 25. expresión regular para coincidir líneas que no contengan una palabra
- 26. Obtener caracteres después de la última/url en
- 27. VBA expresiones regulares - coincidir con una expresión que no comienza con una palabra en particular
- 28. Eliminar cadena después de la última aparición de un carácter
- 29. mysql - seleccione coincidir con la mayoría de los caracteres
- 30. Expresión regular, elimine todo después de la última barra diagonal
expresión regular es universal) pero es para javascript regex –
expresiones regulares no son universal, hay varios sabores con diferentes capacidades. Pero esta Perl Regex hará su tarea: '^ (?:. * *) * (. *) $' –
no necesita una expresión regular para esto.use su idioma favorito, divídalo en "/" y luego obtenga el último elemento. Mucho más simple que crear expresiones regulares. – ghostdog74