5 votos

En AppleScript, ¿cuál es la forma más fácil para eliminar los signos de puntuación de una cadena?

Tengo una Automator Servicio que se compone de una sola "Ejecutar AppleScript" de la acción. El Servicio recibe el seleccionado text en any application.

El Servicio incorpora este texto seleccionado en un pre-determinado formato de dirección URL. El Servicio, a continuación, abre el recién montado URL en una nueva pestaña en una ventana de navegador web.

Aquí es una cadena que el Servicio puede recibir:

Mi Planta está Muerto! (Pero, A Quién Le Importa? Tengo 12 Plantas.)

Quiero utilizar AppleScript para quitar todo y cualquier signo de puntuación que existe en la cadena de caracteres, incluyendo espacios. También necesito la cadena a convertir a todos los caracteres en minúsculas. Los números no deben ser retirados de la cadena.

Así, la cadena deseada es:

myplantsdeadbutwhocaresihave12plants

Yo entiendo que yo puedo lograr el efecto deseado, mediante la escritura de un individuo text item delimiters instrucción para todos los posibles signos de puntuación y de 26 letras en mayúsculas. Yo podría usar una replace_characters sub-rutina para hacer que este método un poco más prolijo.

Hay una forma más fácil o el camino más corto para lograr este efecto en AppleScript, en contraposición a través de decenas de text item delimiters bloques? Tales como, una línea de código que se reduce a una cadena de letras?

Sé que otros lenguajes de programación tienen una "tira de puntuación" acceso directo, que es por ello que te pido.

Este es, esencialmente, un AppleScript específico de "Código de Golf" pregunta.

3voto

user3439894 Puntos 5883

Intente lo siguiente:

set stringToConvert to "My Plant's Dead! (But, Who Cares? I Have 12 Plants.)"
set returnedString to do shell script "echo " & quoted form of stringToConvert & " | tr -dc '[:alnum:]' | tr '[:upper:]' '[:lower:]'"

Devuelve: myplantsdeadbutwhocaresihave12plants

tr comandos explicados:

  • tr -dc '[:alnum:]' elimina todos los que no sean alfanuméricos caracteres (incluyendo espacios en blanco).
  • tr '[:upper:]' '[:lower:]' convierte todos los caracteres de mayúsculas a minúsculas.

Consulte la página man de tr.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X