Cuando tengo una cadena como "Test.m", ¿cómo puedo obtener solo la subcadena "Prueba" de esa vía elisp? Estoy tratando de usar esto en mi archivo .emacs
.¿Cómo puedo obtener una subcadena de una cadena en Emacs Lisp?
Respuesta
Una forma es utilizar substring
(o substring-no-properties
):
(substring "Test.m" 0 -2) => "Test"
(
substring
CADENADE&optional
A)Volver una nueva cadena cuyo contenido es una subcadena de CADENA. La cadena devuelta consiste en los caracteres entre el índice DE (ambos inclusive) y el índice de A (exclusivo) de STRING. FROM y TO son zero-indexed: 0 significa el primer carácter de STRING. Los valores negativos se cuentan desde el final de CADENA. Si TO es
nil
, la subcadena ejecuta hasta el final de STRING.
Probablemente la opción más flexible (aunque no está claro si necesita flexibilidad) sería utilizar replace-regexp-in-string
:
Ver Chfreplace-regexp-in-string
RET
por ejemplo:
(replace-regexp-in-string "\\..*" "" "Test.m")
En su caso particular, es posible que desee utilizar file-name-sans-extension
.
Stefan's answer es idiomático, cuando solo necesita un nombre de archivo sin extensión. Sin embargo, si manipulas archivos y rutas de archivos en gran medida en tu código, te recomiendo instalar la API de archivos y directorios de f.el
de Johan Andersson, ya que proporciona muchas funciones ausentes en Emacs con una API consistente. Confirmar funciones f-base
y f-no-ext
:
(f-base "~/doc/index.org") ; => "index"
(f-no-ext "~/doc/index.org") ; => "~/doc/index"
Si, en cambio, se trabaja con cadenas menudo, instale Magnar Sveen de s.el
por las mismas razones. Usted puede estar interesado en s-chop-suffix
:
(s-chop-suffix ".org" "~/doc/index.org") ; => "~/doc/index"
Para subcadena genérico de recuperación de uso dkim's answer.
Esta es una buena solución de alto nivel. Gracias. – Jabba
- 1. Cómo "decodificar URL" una cadena en Emacs Lisp?
- 2. ¿Cómo comprobar si una cadena está vacía en Emacs Lisp?
- 3. Obtener una cadena después de una subcadena específica
- 4. Cómo obtener subcadena de cadena en C#?
- 5. Buscar subcadena en una cadena usando C#
- 6. ¿Cómo obtener el texto seleccionado en Emacs Lisp?
- 7. Compruebe si una cadena contiene una subcadena
- 8. ¿Eliminar subcadena de una cadena?
- 9. Reemplazando una función en Emacs Lisp
- 10. envuelve una función en emacs lisp
- 11. Cómo determinar si es una subcadena en una cadena diferente
- 12. Análisis en Emacs Lisp
- 13. ¿Cómo obtener una subcadena de texto?
- 14. Cómo copiar al portapapeles en Emacs Lisp
- 15. iPhone: ¿Cómo comprobar si existe una subcadena en una cadena?
- 16. lisp en emacs: ¿cómo comentar una expresión de varias líneas?
- 17. ¿Cómo crear una vista de columna en Emacs Lisp?
- 18. ¿Cómo puedo reemplazar una coincidencia de subcadena regex en Javascript?
- 19. encontrar la posición de una subcadena en una cadena
- 20. Buscar una subcadena en una cadena en Oracle sin LIKE
- 21. ¿Cómo puedo cortar una subcadena de una cadena hasta el final usando Javascript?
- 22. ¿Prueba una cadena para una subcadena?
- 23. ¿Cómo puedo encontrar la primera aparición de una subcadena en una cadena de Python?
- 24. ¿Cómo eliminar una subcadena particular de una cadena?
- 25. PINTURA en Emacs Lisp?
- 26. ¿Cómo eliminar una subcadena de una cadena usando PHP?
- 27. Cómo determinar si una cadena contiene una subcadena específica
- 28. Cómo crear una función temporal en Emacs Lisp
- 29. ejecuta continuamente una función emacs lisp
- 30. ¿Cómo puedo saber si una variable VARCHAR contiene una subcadena?
Muchas gracias. – Peter