Durante el último mes, he estado cubriendo las aplicaciones de Atajos y Automator en iOS y macOS, respectivamente. Ambos son potencias en lo que respecta a la automatización en el ecosistema de Apple, y a partir de macOS Monterey este otoño, Shortcuts será la aplicación de automatización de referencia en todos los dispositivos Apple. Es por eso que quería dedicar este artículo a discutir un tema muy poderoso: el uso de expresiones regulares con la aplicación Atajos.
Si bien tengo algo de experiencia en informática y programación, de alguna manera nunca me había encontrado con expresiones regulares. Tal vez el nombre me asustó, o tal vez fue el código, que es uno de los códigos menos legibles que he visto en mi vida.
Cualquiera que sea el caso, decidí profundizar en las expresiones regulares después de cubrir la aplicación Atajos durante los últimos meses. Y lo que descubrí fue que muchas de las limitaciones con las que me había encontrado con los accesos directos, así como con Automator, podían superarse con expresiones regulares.
En otras palabras, no era que estas aplicaciones carecieran de funciones, sino que yo carecía de educación.
Entonces, en la publicación de hoy, tú y yo vamos a aprender los entresijos de las expresiones regulares juntos. De esa manera, puede aprovechar al máximo cada una de estas aplicaciones.
Vamos a cubrir los conceptos básicos de la expresión regular (comenzando con lo que es), lo que puede hacer con ella en la aplicación Accesos directos, algunos sitios web y recursos que puede utilizar si no tiene ganas de aprender la expresión regular por sí mismo, y luego analizaremos los conceptos básicos y la mecánica de la expresión regular idioma.
Muy bien, ¡comencemos!
Contenido
-
¿Qué son las expresiones regulares (es decir, regex)?
- Cosas que puedes hacer con expresiones regulares
- ¿Cómo se puede utilizar expresiones regulares con la aplicación Accesos directos?
- Utilice regex101.com para probar sus expresiones regulares
- Si no desea aprender a usar expresiones regulares con la aplicación Accesos directos, lea esto
-
Regex para principiantes: comience a usar regex con atajos
- ¿Qué son los sabores de expresiones regulares?
- Sitios web y referencias para ayudarlo a comenzar a aprender expresiones regulares con atajos
- Cómo realizar una búsqueda de texto básica usando expresiones regulares con atajos
- Agregar componentes variables a sus búsquedas de expresiones regulares
- Los rangos pueden ampliar su búsqueda
- Cómo excluir palabras y caracteres de sus búsquedas de expresiones regulares con atajos
- Los comodines pueden brindarle más opciones de búsqueda
- Utilice cuantificadores para especificar la longitud del texto que está buscando
- Hay algunos cuantificadores más que querrá conocer
- Buscar caracteres al principio y al final de una cadena de texto
- Almacene cadenas de texto usando la función de agrupación de expresiones regulares con accesos directos
-
¿Ahora que?
- ¿Cómo desglosarías esto?
-
Comience a usar expresiones regulares con atajos para llevar su automatización al siguiente nivel
- Artículos Relacionados:
¿Qué son las expresiones regulares (es decir, regex)?
Una expresión regular, o "regex", es un fragmento de código que puede utilizar para buscar un fragmento de texto dentro de un fragmento de texto más grande.
En caso de que no lo sepa, un fragmento de texto dentro de otro fragmento de texto se denomina "cadena" en programación. Por ejemplo, la palabra "verde" es una cadena de caracteres del texto "Hoy usé pantalones verdes".
Dicho de otra manera, la expresión regular es una forma de ubicar una cadena de texto en un cuerpo de texto más grande. Y debido a que la expresión regular está escrita en código, puede usarla para realizar algunas operaciones bastante complejas.
Por ejemplo, si desea buscar la palabra "correo electrónico", puede escribir fácilmente un código regex que busque correo electrónico.
Sin embargo, si desea encontrar un correo electrónico que está dentro de un párrafo y no sabe exactamente qué es ese correo electrónico, deberá buscar una cadena de texto que tenga el formato de un correo electrónico. es decir, una cadena que sigue al "[correo electrónico protegido]" formato.
Ahora, supongamos que no solo desea buscar un correo electrónico de un párrafo, sino cada Email. Tal vez desee copiarlos rápidamente en otro lugar, actualizarlos a un nuevo formato o reemplazarlos para que todos digan "[correo electrónico protegido]“.
A medida que se vuelva cada vez más competente y tenga más experiencia con las expresiones regulares, podrá hacer todas estas cosas y más.
Cosas que puedes hacer con expresiones regulares
De acuerdo, quizás los ejemplos con correo electrónico que acabo de dar no sean tan prácticos. No se preocupe, eso está lejos del límite de lo que puede lograr usando expresiones regulares con la aplicación Atajos.
En términos generales, todo lo que puede hacer regex se incluye en una de estas cuatro categorías:
- Busque una cadena de texto en un fragmento de texto más grande (es decir, busque una palabra / cadena / tipo de cadena en una página de texto).
- Confirme que una cadena de texto coincida con el formato deseado (es decir, verifique que una cadena de texto esté en mayúscula / ordenada / puntuada correctamente).
- Reemplaza o inserta texto en un área específica de un fragmento de texto.
- Divida una cadena de texto en puntos específicos (por ejemplo, divida un fragmento de texto cada vez que haya una coma).
El nivel de profundidad que puede usar para interactuar con cada uno de estos tipos de funciones y cómo puede combinarlas hacen de regex una herramienta increíblemente poderosa para analizar y manipular texto.
¿Cómo se puede utilizar expresiones regulares con la aplicación Accesos directos?
Muy bien, ahora es de esperar que tengas una idea básica de para qué se usa la expresión regular. Es un tipo de código que puede usar para buscar texto, incluso si no sabe exactamente qué es ese texto.
Entonces, ¿cómo te ayuda esto en los atajos? Similar a agregar secuencias de comandos a sus accesos directos, es una forma de pasar de las automatizaciones básicas (Envíame un mensaje de texto cuando se abra la puerta principal) a opciones más avanzadas (Crear automáticamente un evento de calendario para mis reuniones cada vez que recibo un correo electrónico para una reunión de Zoom desde el trabajo).
Puede usar expresiones regulares con atajos para verificar que una entrada sea correcta. Por ejemplo, si crea un acceso directo que solo funciona con URL, puede usar expresiones regulares al comienzo del acceso directo para asegurarse de que el usuario esté ejecutando la automatización en una URL.
Puede combinar expresiones regulares con secuencias de comandos para crear atajos potentes. Por ejemplo, este atajo utiliza expresiones regulares y secuencias de comandos para convertir un código de barras en una URL para su tienda favorita.
Cuando use la aplicación Accesos directos en Mac (a partir del otoño de 2021), puede usar expresiones regulares para realizar acciones por lotes en un fragmento de texto. Por ejemplo, puede copiar todos los correos electrónicos en una selección de texto como una lista ordenada. O bien, puede reemplazar todos los nombres de un documento con caracteres "*" para garantizar la privacidad.
Incluso puede copiar un cuerpo de texto de una aplicación, reformatearlo para que coincida con las preferencias de otra aplicación y luego pegarlo en esa otra aplicación, todo con una sola acción de clic derecho.
En otras palabras, la expresión regular le brinda un control total sobre el manejo de texto con la aplicación Atajos. Puede que eso no suene muy útil al principio, pero ahora que sabe que existe, seguramente comenzará a notar cuántos accesos directos podrían mejorarse con esta función. Y también notará que muchos accesos directos ni siquiera son posibles sin expresiones regulares.
Utilice regex101.com para probar sus expresiones regulares
Una vez que comiences a usar expresiones regulares con atajos, te encontrarás con un punto de frustración:
Es realmente difícil probar su código de expresiones regulares. Y eso no es exclusivo de las expresiones regulares. Probar cualquier cosa con la aplicación Atajos es una especie de molestia. La única forma de hacerlo es ejecutar el acceso directo. Ese método no es malo cuando solo estás probando funciones integradas de accesos directos.
Pero para probar el código, esto no permite la verificación línea por línea y no ofrece muchos comentarios.
Para eso, recomiendo usar regex101.com. Es un sitio en el que puede escribir código de expresiones regulares en tiempo real. También puede escribir texto en un editor de texto en la misma página web. A medida que escribe cada uno, verá si su expresión regular está funcionando, por qué funciona o no, y obtendrá información sobre las coincidencias encontradas.
regex101.com está usando un tipo de expresión regular diferente al que admiten los accesos directos (más sobre eso en un minuto), pero está lo suficientemente cerca como para no tener demasiados problemas.
El uso de esta herramienta es excelente porque puede escribir su expresión regular allí primero y luego copiarla en la aplicación Accesos directos una vez que funcione como se esperaba.
Si no desea aprender a usar expresiones regulares con la aplicación Accesos directos, lea esto
Lo entiendo, no todos querrán aprender a usar expresiones regulares con atajos. Es una habilidad y eso significa que requerirá tiempo y práctica. No es tan simple como el resto de las funciones de arrastrar y soltar de la aplicación Atajos.
¡No hay problema! Si bien no podrá obtener tanto de la aplicación Atajos como alguien que dedica tiempo para aprender expresiones regulares, todavía hay opciones disponibles para usted. Es decir, hay sitios y páginas en línea donde las personas han creado una lista de fragmentos de código de expresiones regulares que puede copiar y pegar en la aplicación Accesos directos.
Aquí hay algunos enlaces que puede consultar si no desea aprender expresiones regulares:
- https://www.shortcutfoo.com/app/dojos/regex/cheatsheet
- https://www.reddit.com/r/shortcuts/comments/9zo24n/regex_cookbook_for_shortcuts_reusable_regex_to/
- https://www.reddit.com/r/shortcuts/comments/b5labq/match_text_examples_for_the_beginner_a_regex/
- http://www.rexegg.com/regex-cookbook.html
Simplemente lea esos enlaces y podrá encontrar soluciones de expresiones regulares comunes para los accesos directos que desea crear. Esta no será una opción sin educación, ya que todavía tomará un poco aprender a entender lo que está viendo. Pero es mucho más simple y una solución ideal para alguien que no tiene tiempo para poner en regex.
Dicho esto, debo admitir que la expresión regular no es demasiado difícil de aprender, especialmente si tiene algo de experiencia con el código de shell o la programación para principiantes. Regex me sonaba como un galimatías al principio, pero después de una hora de leer artículos y jugar con regex101.com, pude comenzar a escribir expresiones regulares para mis atajos.
Es solo una cuestión de familiaridad: después de mirarlo el tiempo suficiente, dejará de verse tan extraño. Entonces, si tiene tiempo y simplemente se siente intimidado, ¡no lo esté!
Regex para principiantes: comience a usar regex con atajos
¡Muy bien, suficiente prefacio! Debe tener una idea de qué es la expresión regular, qué puede hacer, por qué debe aprenderla y suficiente información para decidir si desea aprenderla. Ahora vamos a entrar en el meollo de la cuestión.
Hay mucho contenido a continuación, ¡pero no te preocupes! Este artículo será más una guía de estudio. Recomiendo echar un vistazo a cada sección para que tengas una idea de la mecánica que usa la expresión regular. Esto también debería ayudarlo a entenderlo, también, si todavía está confundido acerca de qué es la expresión regular.
Una vez que haya hojeado las cosas, le recomiendo abrir regex101.com y jugar con cada una de las herramientas en cada sección a continuación. Eso le ayudará a ver cómo se ven los conceptos en la práctica, así como a mejorar su memoria. Una vez que hayas hecho eso, puedes tratar este artículo como un punto de referencia, algo a lo que puedes volver cuando te olvides de los detalles de las expresiones regulares.
¡OK vamos!
¿Qué son los sabores de expresiones regulares?
Primero, veremos los sabores de expresiones regulares. No se preocupe, esto no afectará su uso diario de expresiones regulares con accesos directos. Es algo que debe tener en cuenta antes de comenzar.
Existen diferentes versiones de expresiones regulares que se conocen como "sabores". Estas diferentes versiones siguen siendo muy similares. Si puede aprender a leer y escribir un sabor, debería poder leer cualquiera de ellos. Solo habrá pequeñas diferencias en cómo se debe formatear su código de expresiones regulares.
En programación, estos detalles de formato se conocen como "sintaxis". Es simplemente la forma en que tienes que escribir tu código para que la aplicación en la que lo escribas lo entienda.
He aquí por qué es importante la sintaxis
"Hola amigo, ¿cómo va tu día?"
“, Va amigo? tu Hey dia como "
Ambas oraciones tienen las mismas palabras, caracteres y espacios. Sin embargo, solo uno tiene sentido, y eso se debe a que sigue la sintaxis convencional.
En la codificación, un lenguaje de programación puede comprender la primera versión pero no la segunda. Sin embargo, para otro lenguaje de programación, el segundo podría tener total sentido, mientras que el primero parece un galimatías. Sin embargo, para alguien que pueda hablar inglés, probablemente pueda entender la intención de ambas líneas, aunque una tomará un poco de trabajo para entender el significado.
Así son (más o menos) los diferentes sabores de expresiones regulares. Todos se verán un poco diferentes y un poco similares a ti. Pero debe usar el tipo correcto para la aplicación que está usando, o de lo contrario, esa aplicación no tendrá ni idea de lo que ha escrito.
La aplicación Shortcuts comprende el tipo de expresión regular de la UCI, así que ese es el tipo que querrás usar. El sitio regex101.com tiene algunos sabores diferentes entre los que puede elegir a la izquierda de la página. Sin embargo, usa PCRE, que es bastante similar a ICU.
Es importante saber que hay diferentes sabores de expresiones regulares porque sin duda encontrará diferentes sabores en línea. Si encuentra un poco de expresión regular que desea robar pero no puede hacer que funcione con los accesos directos, o simplemente no se ve bien, ¡verifique en qué sabor está escrito!
Sitios web y referencias para ayudarlo a comenzar a aprender expresiones regulares con atajos
Otra cosa que quiero cubrir antes de comenzar a explorar la mecánica real de escribir expresiones regulares son los recursos. De ninguna manera estoy afirmando que esta publicación sea un recurso exhaustivo sobre el aprendizaje de expresiones regulares. Solo está destinado a ser un punto de partida útil para aquellos que quieran usar expresiones regulares con accesos directos.
Si desea profundizar en las expresiones regulares o siente que este artículo no le brinda la ayuda que necesita, puede consultar algunos de estos artículos, guías y herramientas:
- https://regex101.com - Un sitio web que le permite probar su código de expresiones regulares en tiempo real.
- https://www.shortcutfoo.com/app/dojos/regex/cheatsheet - Una hoja de trucos para cuando olvides lo que hace cada personaje.
- http://www.rexegg.com - Este sitio web es un recurso completo para aprender todo lo que necesita saber sobre expresiones regulares. Echa un vistazo a este si quieres dominar las expresiones regulares.
- https://scottwillsey.com/blog/ios/regex1/ - Esta es una serie de blogs de cuatro partes sobre el uso de expresiones regulares con accesos directos. Estoy adoptando un enfoque muy diferente al de esta guía, por lo que debería ser una buena serie complementaria para este artículo.
- Stack Overflow y Reddit son buenos sitios web para compartir sus preguntas de expresiones regulares y su progreso para obtener consejos y respuestas.
Estos recursos son distintos de los enumerados en el Si no quiere aprender a usar expresiones regulares con la aplicación Accesos directos sección, ya que todos requerirán que empieces a aprender expresiones regulares. Son más completos, mientras que los demás son solo puntos de referencia.
Cómo realizar una búsqueda de texto básica usando expresiones regulares con atajos
¡Bien! Hemos llegado al punto que todo el mundo estaba esperando: vamos a aprender los fundamentos del uso de expresiones regulares con atajos.
Comencemos con una búsqueda básica, ya que esto es lo más simple que puede hacer con expresiones regulares. Como se mencionó anteriormente, recomiendo tener regex101.com abierto en otra pestaña para que pueda seguirlo.
En su forma más básica, regex buscará (o fósforo) lo que sea que escriba en él. Por ejemplo, si tuviera que escribir Bien
como mi código de expresiones regulares, encontraría todas las instancias de la palabra "Muy bien" en esta guía.
El caso, el espaciado y la puntuación son importantes. Eso significa que Bien
, bien
, ¡Bien!
, y Bien ,
todos van a producir resultados diferentes.
¡Y eso es! Siempre que escriba algo en una búsqueda de expresiones regulares sin utilizar ningún carácter especial, la expresión regular coincidirá con cualquier cosa que coincida exactamente con lo que haya escrito.
¡Hay una trampa! Algunos caracteres de su teclado también son caracteres especiales de expresiones regulares. Eso significa que realizan algún tipo de función en el código de expresiones regulares.
los ?
El símbolo es uno de esos personajes. Se utiliza en el código de expresiones regulares como cuantificador. Entonces, si intentas buscar "¿Está bien?" escribiendo ¿Bien?
como su código de expresiones regulares, no obtendrá lo que desea.
Para solucionar este problema, debe especificar que desea utilizar "?" como una cadena, no como un carácter especial. Para hacer eso para este personaje o cualquier otro, simplemente agregue un \
símbolo justo antes del carácter cuyas propiedades especiales desea anular.
Entonces, si quieres buscar "¿Está bien?" con expresiones regulares, su código se verá así:
Bien\?
Si no está seguro de si un carácter específico es tratado como un carácter especial por expresiones regulares, puede verificar esta hoja de trucos para todos los caracteres especiales en expresiones regulares.
Busque más de una palabra con el carácter "o"
Otro componente importante de la búsqueda de cadenas con expresiones regulares es el uso de la función "o". Este es un carácter que puede colocar entre dos palabras / caracteres para decir "Coincide con esto o esto".
Por ejemplo, si quiero buscar en un cuerpo de texto la palabra "bien" y "bien", usaría la |
personaje. Al igual que:
Bien | bien
Si tiene dificultades para encontrar el |
personaje, mantenga el cambio y presione la tecla \
llave. Está por encima del regreso en la mayoría de los teclados.
Agregar componentes variables a sus búsquedas de expresiones regulares
Bien, ahora que sabes cómo es la expresión regular neutral, es hora de elegir tu primer carácter especial. Esos serían los corchetes, que son estas cosas []
.
Todo lo que ponga dentro de estos corchetes se considerará un componente variable de su búsqueda de expresiones regulares. Puede poner tantos caracteres entre paréntesis como desee, aunque solo uno será válido por coincidencia.
Muy bien, eso suena un poco complicado, ¡pero no lo es! Así es como se ve en la práctica:
-
[Bien
coincidirá con la palabra "Muy bien". Algo inútil. -
[AB] bien
coincidirá con "Alright" y "Blright". -
Alr [iouxyz] ght
coincidirá con "Alright", "Alroght", "Alrught", "Alrxght", etc.
Puede combinar caracteres entre corchetes y usar varios corchetes en la misma línea de expresión regular. [AB] r [i1] gh [tuvwxyz]
es una pieza válida de expresión regular. Sin embargo, es de esperar que no se vea tan caótico como podría haberlo hecho hace unos minutos.
Los rangos pueden ampliar su búsqueda
El siguiente fragmento de expresión regular que será útil con los atajos es el rango. Los rangos le permiten especificar un rango de caracteres que aceptará.
En la sección anterior, es posible que haya notado que mis corchetes incluían muchas letras consecutivas. El mas largo fue [tuvwxyz]
. Esas letras aparecen en el alfabeto en el mismo orden, una al lado de la otra.
Eso significa que podría usar un rango en lugar de escribirlos. Eso se vería así:
Muy bien [t-z]
Esta pieza de código de expresiones regulares hará lo mismo que Alrigh [tuvwxyz]
. Es simplemente más ordenado y más fácil de escribir.
Podrías reemplazar ese mismo rango con [Arizona]
si desea que acepte cualquier letra minúscula del alfabeto. O podrías usar [0-9]
si desea aceptar cualquier número de un solo dígito.
También puede combinar rangos dentro del mismo soporte. Por ejemplo, este Alr [i-ux-z] lucha
aceptará "Alright", "Alroght", "Alrxght" y "Alryght", pero no aceptará "Alraght" o "Alrvght".
Hay otras variaciones de la palabra "Muy bien" que este código aceptará, por cierto, y muchas más que no. Esa es solo una pequeña selección para mantener las cosas, bueno, breves.
Si tiene dificultades para comprender qué [i-ux-z]
significa que podría ayudar verlo escrito así:
[i-u, x-z]
Esa no es la sintaxis correcta de expresiones regulares; no debe usar una coma para separar rangos. Pero, con suerte, ¡eso ayudará a que tenga más sentido!
No necesita comas en regex para separar rangos y no tiene que poner rangos uno al lado del otro. Podrías cambiarlo a [i-uabcx-z]
. Esto aceptaría los mismos rangos que antes más los caracteres "a", "b" y "c".
Cómo excluir palabras y caracteres de sus búsquedas de expresiones regulares con atajos
Ok, ¡ahora vamos a alguna parte! Si ha seguido este artículo hasta este punto, debería poder mirar el código a continuación y comprender con qué coincide:
Ap [p-r] le [Tt] ool [BbLF] ox
Si puede leerlo, entonces sabrá que el código de expresiones regulares incluye mucho de posibles variaciones de la palabra “AppleToolBox”. Entonces, ¿qué pasaría si quisiéramos reducir el número de variaciones que acepta sin alterar nuestro rango?
Ahí es donde entra el carácter de "no". Se parece a esto: ^
. Si está teniendo dificultades para encontrarlo en su teclado (como lo hice yo), mantenga presionado cambio y presione el 6 tecla en su teclado.
Usar el ^
carácter, colóquelo al principio del carácter que desea excluir.
¡Hay una trampa! los ^
El carácter no funciona fuera de una función de expresión regular. No puede simplemente colocarlo delante de la letra "A" para que excluya esa letra de su búsqueda. El código regex ^ A
simplemente buscará una “A” mayúscula.
En su lugar, combínelo con corchetes y otros caracteres especiales de expresiones regulares.
Por ejemplo, si quisiera buscar cualquier instancia de la palabra "Muy bien" que no comience con la letra "A", usaría el código [^ A] está bien
.
¡Incluso puedes combinarlo con gamas! Simplemente colóquelo al comienzo de su paréntesis, y cualquier cosa dentro de ese paréntesis, incluidos los rangos, se excluirá de su búsqueda. Al igual que:
¿Qué sucede si desea excluir una palabra específica de su búsqueda?
Me costó mucho encontrar esta información. Sin embargo, un usuario de Stack Overflow tenía la solución y se ve así:
^ (?! (palabra) $). + $
Solo reemplaza palabra
con cualquier palabra que desee excluir de su búsqueda. Al igual que:
Puedes leer esa publicación de Stack Overflow aquí si desea obtener más información sobre este caso de uso específico.
Los comodines pueden brindarle más opciones de búsqueda
Eso nos lleva a los comodines. El carácter comodín, que es un punto. .
, se utiliza para representar cualquier carácter individual, sin excepción. Si solo escribe .
como su código de expresiones regulares con accesos directos, devolverá cada carácter en un cuerpo de texto como una coincidencia individual.
¡No recomendaría usarlo para ese propósito, por supuesto! En cambio, recomiendo usarlo en lugar de un solo carácter en una palabra. Por ejemplo, Alr.ght
coincidirá con "Muy bien", "Alrxght", "Alr
¡Y eso es todo! El carácter comodín es bastante fácil de entender. ¡Combina con todo! Eso lo hace útil para encontrar cadenas que coincidan con un formato específico y que tengan caracteres únicos.
Los correos electrónicos, por ejemplo, se verán bastante similares sin ser iguales. El comodín puede ayudarlo a combinar elementos que sabe que estarán allí (como ".com" y "@") con caracteres que no conoce (como "my_email567", iCloud o "Gmail").
Otro caso de uso interesante es el uso de .
carácter para encontrar cadenas de una longitud específica.
Por ejemplo, si quiero encontrar cada cadena de cuatro caracteres en un cuerpo de texto, podría usar ...
con un espacio a cada lado.
Y aquí están todas las cadenas de siete caracteres en ese mismo cuerpo de texto:
Tenga en cuenta que este no es un método perfecto para encontrar cadenas de cierta longitud. Como puede ver en los ejemplos anteriores, algunas cadenas coinciden que no deberían y otras que deberían haberse ignorado. Es interesante recordar que puede utilizar la .
personaje para contar caracteres.
Además, tenga en cuenta que el .
es un carácter especial en expresiones regulares. Eso significa que deberá agregar un \
delante de él si desea buscar puntos. Eso significa que tendrías que usar Bien\.
para que coincida con "Muy bien".
Utilice cuantificadores para especificar la longitud del texto que está buscando
Muy bien, técnicamente puedes usar el .
carácter para encontrar una cadena que ocupe un número específico de caracteres. Sin embargo, la mayoría de las veces querrá ser más específico.
Ahí es donde entran en juego los cuantificadores. Los cuantificadores le permiten especificar la longitud de la cadena que está buscando cuando usa expresiones regulares con atajos.
Por ejemplo, supongamos que desea buscar cualquier palabra que tenga específicamente tres letras. Para especificar eso, querrá usar estos corchetes:
{}
Cuando coloca estos soportes después de estos []
corchetes, estás especificando que quieres una cadena que coincida con el número de caracteres dentro de este {}
y el rango de caracteres especificado en este []
.
Estoy seguro de que eso no tiene mucho sentido ahora, ¡así que veamos un ejemplo!
Supongamos que desea buscar los años mencionados en el cuerpo del texto. Dado que un año consta de cuatro números (obviamente no todos los años de todos los tiempos, solo sígueme aquí), puede usar este código para hacer coincidir los años dentro de ese texto:
[0-9]{4}
Este código dice que queremos una cadena formada por caracteres del 0 al 9 que tenga específicamente cuatro caracteres de longitud. Puede ver cómo localiza esta cadena específica en la siguiente captura de pantalla:
Debo señalar que hay algunos problemas con este código de expresiones regulares, y es que no tiene en cuenta los espacios ni la puntuación. Entonces, si el código encuentra un número de más de cuatro caracteres, como "12345678", encontrará la cadena "1234" y la cadena "5678".
Para solucionar este problema, querrá agregar un espacio al principio del código y un corchete después del {4}
que contiene otro espacio, un punto, un signo de interrogación, una coma y un signo de exclamación. De esa manera, pasará por alto cadenas largas de números sin que falten cadenas de números que tengan puntuación al final en lugar de un espacio.
Es posible que también desee utilizar cuantificadores para especificar más de una longitud de cadena. Por ejemplo, tal vez quiera encontrar una cadena de cuatro caracteres de longitud, pero también siete y once. Así es como se vería eso:
[a-z] {4,7,11}
Hay algunos cuantificadores más que querrá conocer
Ok, ¡todavía hay más cuantificadores! Estos últimos cuantificadores son para cuando desea especificar la longitud de una cadena sin ser demasiado específico.
Por ejemplo, supongamos que desea encontrar una cadena de cualquier longitud que pueda coincidir con la expresión regular. ¡Como un nombre! Los nombres (en los países occidentales) comienzan con una letra mayúscula y terminan con una cantidad aleatoria de letras minúsculas, seguidas de un espacio. Para encontrar un nombre, debe escribir el siguiente código:
[A-Z] [a-z] *
[ARIZONA]
especifica que el primer carácter de la cadena debe ser una letra mayúscula. [Arizona]*
especifica que el resto de la cadena debe estar formada por letras minúsculas, pero no importa cuántas letras sigan. Y el espacio al final significa que terminará la coincidencia una vez que encuentre un espacio al final de las letras minúsculas.
Un combo dorado en expresiones regulares es .*
. Eso significa hacer coincidir cualquier personaje infinitamente. En otras palabras, coincidirá con todo el cuerpo del texto como un elemento.
El siguiente cuantificador que necesitará saber es +
. Este es como *
excepto que no coincidirá con una cadena con cero caracteres. *
coincidirá con cualquier longitud de cadena, lo que incluye cadenas que no tienen longitud. +
, por otro lado, necesita una cadena con al menos un carácter o más.
Por último, está el ?
cuantificador. Este es extraño. Especifica que una cadena tiene una longitud de cero caracteres o de un carácter. Eso es todo, o nada o solo uno. Entonces, si usa el código [Arizona]?
con un espacio al principio y al final, buscará letras individuales en el cuerpo del texto.
Buscar caracteres al principio y al final de una cadena de texto
¡Nos acercamos al final de nuestra guía sobre el uso de expresiones regulares con atajos! Solo hay dos tipos más de código de expresiones regulares que usará con los accesos directos.
Los primeros son caracteres que le permiten hacer coincidir cadenas en función de cómo comienzan y / o terminan.
Cuando no está entre paréntesis, el ^
El rol del personaje cambia de significar "excluir" a "comienza con". Especifica que una cadena debe comenzar con lo que quieras. Por ejemplo, si escribe ^ A
, que coincidiría con la letra "A" en las cadenas "Muy bien", "Apple" y "A".
Sin embargo, no coincide con la palabra completa. Para eso, deberías cambiarlo a ^ A [A-Za-z] *
. Eso coincidirá con la primera palabra de un párrafo / cadena, siempre que esa palabra comience con una “A” mayúscula.
Como nota al margen, puedes escribir [A-Za-z]
como [Arizona]
. Significa lo mismo, solo encuentro que el primero es un poco más claro cuando estás aprendiendo.
Para especificar el final de la cadena, querrá usar el $
personaje. Funciona igual que el ^
personaje. La única diferencia es que lo escribe al final de un corchete / cadena en lugar de al principio.
Por ejemplo, si quisiera encontrar cadenas / párrafos que terminen con "le", usaría el código [A-z] * le $
. Eso coincidirá con "Tabla", "manzana" y "capaz" siempre que estén al final de una cadena o párrafo.
Regex incluso negará esta coincidencia si hay un espacio o una marca de puntuación al final de la cadena. "Mesa." no coincidirá con este código.
Para solucionarlo, puede tener en cuenta la puntuación. Este código tiene en cuenta varias formas de puntuación y espaciado que podrían ocurrir al final de una cadena, incluido un signo de puntuación seguido de un espacio:
[A-z] * (le [\. \?!,]? []?) $
Ese código coincidirá con "Capaz", "mesa", "estable" y "¿Capaz?" “.
Almacene cadenas de texto usando la función de agrupación de expresiones regulares con accesos directos
¡Bien! Ha llegado al final de nuestra guía AppleToolBox sobre el uso de expresiones regulares con accesos directos. Solo queda una función de expresión regular más por aprender, y es la agrupación.
La agrupación es posiblemente la característica más importante de las expresiones regulares, ya que es lo que le permite hacer cosas con el código de expresiones regulares que escribe. Sin ella, la expresión regular es solo una función de búsqueda. Solo puede decirle si existe una cadena dentro de un cuerpo de texto más grande, es decir, devolverá "verdadero" o "falso".
Sin embargo, con la agrupación puede almacenar los resultados de su código de expresiones regulares. Y eso significa que puede copiar coincidencias, almacenarlas en variables, reemplazarlas con otro texto, modificar su formato y todo lo demás que desee hacer con expresiones regulares.
¡Afortunadamente, agrupar es muy fácil! Solo ponga lo que quiera agrupar entre paréntesis ()
. Todo lo que ponga entre paréntesis se tratará como un grupo.
Si pones una línea completa de código regex entre paréntesis, como (.*@.*\..{3})
, ese grupo será recordado por su código, lo que permitirá que se recupere más adelante en la línea.
Es importante que solo use grupos cuando lo necesite. Dado que están almacenados en la memoria, pueden hacer que disminuya el rendimiento de su código. ¡Guarde los grupos para cuando los necesite!
También puede utilizar grupos para la organización
También puede utilizar grupos para organizar su código de expresiones regulares con accesos directos. Cuando haga esto, el grupo dentro del paréntesis no será necesariamente recordado.
Por ejemplo, digamos que quiero hacer coincidir la palabra "Hola", excepto que no me importa cuál sea la última letra. Puede ser cualquier letra minúscula o mayúscula o incluso un número. "Hell3838djdjajaksks" y "Hola" deben contarse como coincidencias. El “infierno”, por otro lado, no debe contarse.
Para que esto funcione, escribo el código Infierno [A-z] | [0-9] +
. Pero este es el resultado que obtengo:
La razón por la que no coincide de la manera que esperaba es que el +
solo se aplica a la [0-9]
soporte. Necesito que se aplique a ambos soportes.
Además, este código dice que quiero Infierno [A-z]
o[0-9]
. Por lo tanto, busca palabras que comiencen con "Infierno" y terminen con una letra, o busca cadenas de números. Lo que realmente necesito es que coincida con las instancias de la palabra "Infierno" que terminan con una letra o un número.
Para solucionar esto, puedo usar un grupo y reescribir el código como Infierno ([A-z] | [0-9]) +
. Ahora busca la palabra "Infierno" seguida de cualquier letra o número. Y porque el +
se aplica a ambos corchetes, puede ser cualquier combinación de letras y números, siempre que haya al menos una letra o número presente.
Como puede ver en la captura de pantalla a continuación, este grupo resuelve mi problema sin almacenar necesariamente la información dentro de ese grupo:
¿Ahora que?
¡Y eso es! Eso es casi todo lo que podría desear saber sobre el uso de expresiones regulares con accesos directos. Con suerte, se siente lo suficientemente seguro como para comenzar a experimentar con expresiones regulares ahora, incluso si no tuvo sentido para usted al principio.
Ahora que conoce los conceptos básicos de las expresiones regulares, ¡está listo para comenzar a usarlo en sus accesos directos! Los atajos aceptan la entrada de expresiones regulares en las siguientes acciones:
- Coincidir texto
- Reemplazar texto
Usando estas dos acciones de Atajos, puede insertar expresiones regulares en sus Atajos.
Combine esto con las capacidades de automatización de Atajos y tendrá una herramienta bastante poderosa a su disposición.
Puede utilizar expresiones regulares para facilitar el formato de texto en los accesos directos, para extraer información de correos electrónicos, textos, sitios web, archivos y eventos del calendario, cree texto que siga un formato específico, verifique que la entrada se ingresó correctamente y más.
Por ejemplo, digamos que desea hacer coincidir los correos electrónicos. Tal vez necesite verificar que una cadena de texto sea un correo electrónico, o tal vez desee extraer un correo electrónico de un cuerpo de texto.
¿Cómo desglosarías esto?
Bueno, ya sabes que la estructura básica de un correo electrónico será una combinación de letras, números y caracteres, seguida del símbolo "@", luego seguido del nombre de un sitio web como Gmail o iCloud, seguido de un ".com", ".org" o algún otro tipo de nivel superior de tres caracteres dominio.
Para escribir eso en expresiones regulares, debe especificar que desea una cadena de al menos un carácter que se siga inmediatamente por el símbolo "@", luego otra cadena de al menos un carácter, seguida de un ".", luego seguida de una cadena de tres caracteres. Eso se vería así:
[correo electrónico protegido]+\..{3}
Si pega esto en el Coincidir texto o Reemplazar texto acciones en Accesos directos, tendrá una automatización que puede encontrar, almacenar y manipular una dirección de correo electrónico.
¡Puede usar este tipo de resolución de problemas para crear sus propias soluciones de expresiones regulares o para encontrar algunas que otros hayan creado en línea!
Comience a usar expresiones regulares con atajos para llevar su automatización al siguiente nivel
Y eso, amigos, es realmente. ¡Espero que hayas disfrutado siguiendo este artículo! Esta es una de las piezas más ambiciosas que he escrito para AppleToolBox. Tuve que enseñarme a mí mismo sobre expresiones regulares para escribirlo, y espero que al hacerlo, pueda ayudarlo a aprenderlo.
Usar expresiones regulares con accesos directos no es diferente a aprender a hacer cualquier otra cosa en su teléfono inteligente o computadora. Solo dedique algo de tiempo y paciencia y, finalmente, lo logrará.
Para obtener más guías, tutoriales y noticias sobre todo lo relacionado con Apple, consulte el resto de el blog AppleToolBox.
Bien [A-Z] [a-z] +
, ¡Nos vemos la próxima vez!