Cómo comenzar a usar Regex con la aplicación de accesos directos
Durante el último mes, estuve cubriendo las aplicaciones 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 cierta 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 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 topado con los atajos, así como con Automator, podían superarse con expresiones regulares.
En otras palabras, no era que a estas aplicaciones les faltaran funciones, sino que a mí me faltaba educación.
Entonces, en la publicación de hoy, tú y yo aprenderemos juntos los entresijos de las expresiones regulares. De esa manera, podrás aprovechar al máximo cada una de estas aplicaciones.
Vamos a cubrir los conceptos básicos de las expresiones regulares (comenzando con lo que es), lo que puede hacer con ella en la aplicación Atajos, algunos sitios web y recursos que puede usar si no tiene ganas de aprender expresiones regulares usted mismo, y luego Analizaremos los conceptos básicos y la mecánica del lenguaje de expresiones regulares.
Muy bien, ¡comencemos!
¿Qué son las expresiones regulares (es decir, expresiones regulares)?
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 sepas, 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 como la expresión regular está escrita en código, puedes usarla para realizar algunas operaciones bastante complejas.
Por ejemplo, si desea buscar la palabra "correo electrónico", puede escribir fácilmente un código de expresión regular 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 el formato “email@website.com”.
Ahora, supongamos que no sólo desea encontrar un correo electrónico de un párrafo sino todos los correos electrónicos. Tal vez quieras copiarlos rápidamente en otro lugar, actualizarlos a un nuevo formato o reemplazarlos para que todos digan "AprilFools@GotYou.com".
A medida que adquieras mayor dominio y experiencia con las expresiones regulares, podrás hacer todas estas cosas y más.
Cosas que puedes hacer con expresiones regulares
Muy bien, tal vez los ejemplos con correo electrónico que acabo de dar no sean tan prácticos. No te preocupes, eso está lejos del límite de lo que puedes lograr usando expresiones regulares con la aplicación Atajos.
En términos generales, todo lo que pueden hacer las expresiones regulares se incluye en una de estas cuatro categorías:
- Encuentre 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úsculas/ordenada/puntuada correctamente).
- Reemplazar o insertar 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 utilizar para interactuar con cada uno de estos tipos de funciones y cómo puede combinarlas hacen de las expresiones regulares una herramienta increíblemente poderosa para analizar y manipular texto.
¿Cómo se pueden utilizar expresiones regulares con la aplicación Atajos?
Muy bien, ahora es de esperar que tengas una idea básica de para qué se utilizan las expresiones regulares. Es un tipo de código que puedes usar para buscar texto, incluso si no sabes exactamente qué es ese texto.
Entonces, ¿cómo te ayuda esto en los accesos directos? De manera similar a agregar secuencias de comandos a tus accesos directos, es una manera de pasar de automatizaciones básicas (Envíame un mensaje de texto cuando se abra la puerta principal) a más opciones 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 del 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 inicio 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 acceso directo utiliza expresiones regulares y secuencias de comandos para convertir un código de barras en una URL para su tienda favorita.
Cuando utilice la aplicación Atajos en Mac (próximamente en otoño de 2021), puede utilizar 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 puedes 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, las expresiones regulares te brindan control total sobre el manejo del texto con la aplicación Atajos. Puede que esto no parezca muy útil al principio, pero ahora que sabes que existe, seguramente comenzarás a notar cuántos atajos podrían mejorarse con esta función. Y también notarás que muchos atajos 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 sólo estás probando las funciones de accesos directos integradas.
Pero para probar el código, esto no permite la verificación línea por línea y no ofrece mucha retroalimentación.
Para eso, recomendaría usar regex101.com. Es un sitio en el que puedes escribir código regex 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 funciona, por qué funciona o no y obtendrá información sobre las coincidencias encontradas.
regex101.com utiliza un tipo de expresión regular diferente al que admiten los accesos directos (más sobre eso en un minuto), pero es lo suficientemente parecido como para que no tengas demasiados problemas.
Usar esta herramienta es excelente porque primero puede escribir su expresión regular allí y luego copiarla en la aplicación Atajos una vez que funcione según lo previsto.
Si no quieres aprender a usar expresiones regulares con la aplicación Atajos, lee esto
Lo entiendo: no todo el mundo querrá aprender a utilizar 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á aprovechar tanto la aplicación Atajos como alguien que dedica tiempo a 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ódigos de expresiones regulares que puede copiar y pegar en la aplicación Atajos.
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 te llevará un poco de tiempo acostumbrarte a lo que estás viendo. Pero es mucho más simple y una solución ideal para alguien que no tiene tiempo para realizar expresiones regulares.
Dicho esto, debo admitir que las expresiones regulares no son demasiado difíciles de aprender, especialmente si tienes algo de experiencia con el código shell o programación para principiantes. Las expresiones regulares me sonaron 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 simplemente una cuestión de familiaridad: después de que lo mires lo suficiente, dejará de parecer tan extraño. Entonces, si tienes tiempo y simplemente te sientes intimidado, ¡no lo estés!
Regex para principiantes: comience a usar expresiones regulares con atajos
Muy bien, ¡suficiente prefacio! Debes tener una idea de qué es la expresión regular, qué puede hacer, por qué deberías aprenderla y suficiente información para decidir si quieres 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 bien una guía de estudio. Recomiendo hojear cada sección para tener una idea de la mecánica que utiliza la expresión regular. Esto también debería ayudarte a entenderlo, si todavía estás confundido acerca de qué es la expresión regular.
Una vez que haya hojeado todo, le recomiendo abrir regex101.com y jugar con cada una de las herramientas en cada sección a continuación. Eso te ayudará a ver cómo se ven los conceptos en la práctica y a mejorar tu memoria. Una vez que hayas hecho eso, puedes tratar este artículo como un punto de referencia, algo a lo que puedes volver cuando olvides los detalles de las expresiones regulares.
¡Bien, vámonos!
¿Qué son los sabores de expresiones regulares?
Primero, veremos los sabores de expresiones regulares. No te preocupes, esto no afectará tu uso diario de expresiones regulares con atajos. Es simplemente 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 puedes aprender a leer y escribir un sabor, deberías poder leer cualquiera de ellos. Sólo habrá ligeras 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 estás escribiendo lo entienda.
He aquí por qué es importante la sintaxis
"Hola amigo, ¿cómo te va el día?"
", ¿va amigo? Tu hola, ¿cómo?"
Ambas oraciones tienen las mismas palabras, caracteres y espacios. Sin embargo, sólo uno tiene sentido, y eso se debe a que sigue la sintaxis convencional.
En codificación, un lenguaje de programación puede entender la primera versión pero no la segunda. Sin embargo, para otro lenguaje de programación, el segundo podría tener mucho sentido, mientras que el primero parece un galimatías. Sin embargo, alguien que pueda hablar inglés probablemente pueda entender la intención de ambas líneas, aunque tomará un poco de trabajo entender el significado.
Así es (más o menos) cómo son los diferentes sabores de expresiones regulares. Todos se verán un poco diferentes y un poco similares a ti. Pero debes usar la versión correcta para la aplicación que estás usando, o de lo contrario esa aplicación no tendrá idea de lo que has escrito.
La aplicación Atajos comprende el tipo de expresiones regulares de la UCI, por lo 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, utiliza PCRE, que es bastante similar a la UCI.
Es importante saber que existen diferentes tipos de expresiones regulares porque sin duda encontrarás diferentes sabores en línea. Si encuentra un poco de expresión regular que desea robar pero no puede hacer que funcione con los atajos, o simplemente no se ve bien, ¡compruebe en qué estilo está escrito!
Sitios web y referencias que le ayudarán a empezar a aprender expresiones regulares con accesos directos
Otra cosa que quiero cubrir antes de comenzar a explorar la mecánica real de escribir expresiones regulares son los recursos. De ninguna manera pretendo que esta publicación sea un recurso exhaustivo sobre el aprendizaje de expresiones regulares. Simplemente pretende ser un punto de partida útil para aquellos que quieran utilizar expresiones regulares con atajos.
Si desea profundizar en las expresiones regulares o cree 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 regex 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 las expresiones regulares. Mira 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 a este artículo.
- Stack Overflow y Reddit son buenos sitios web para compartir sus preguntas sobre expresiones regulares y su progreso para obtener consejos y respuestas.
Estos recursos son distintos de los que se enumeran en la sección Si no desea aprender a usar expresiones regulares con la aplicación Atajos, ya que todos requerirán que comience a aprender expresiones regulares. Son más completos, mientras que los demás son sólo puntos de referencia.
Cómo realizar una búsqueda de texto básica usando expresiones regulares con atajos
¡Está bien! Ahora hemos llegado al punto que todos estaban esperando: aprenderemos los fundamentos del uso de expresiones regulares con atajos.
Comencemos con una búsqueda básica, ya que es lo más sencillo que puedes 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 coincidirá) todo lo que escribas. Por ejemplo, si escribiera Muy bien
como mi código de expresión regular, 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 Muy bien
, Muy bien
, Muy bien!
y Muy bien,
producirán resultados diferentes.
¡Y eso es todo! 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 un problema! Algunos caracteres de su teclado también son caracteres de expresiones regulares especiales. Eso significa que realizan algún tipo de función en el código de expresiones regulares.
El símbolo ?
es uno de esos caracteres. Se utiliza en código regex como cuantificador. Entonces, si intentas buscar "¿Está bien?" Si escribe ¿Está bien?
como código de expresión regular, 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 con este carácter o cualquier otro, simplemente agregue un símbolo \
justo antes del carácter cuyas propiedades especiales desea anular.
Entonces, si desea buscar "¿Está bien?" con expresiones regulares, su código se verá así:
¿Está bien\?
Si no está seguro de si las expresiones regulares tratan un carácter específico como un carácter especial, puede consultar esta hoja de trucos para conocer todos los caracteres especiales en las expresiones regulares.
Busque más de una palabra usando 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 puedes colocar entre dos palabras/caracteres para decir: "Empareja esto o esto".
Por ejemplo, si quiero buscar en un cuerpo de texto la palabra "bien" y "Muy bien", usaría el carácter |
. Así:
Está bien|está bien
Si tiene dificultades para encontrar el carácter |
, mantenga presionada la tecla shift y presione la tecla \
. Está encima de la tecla retorno 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 personaje especial. Esos serían los corchetes, que son estas cosas []
.
Todo lo que pongas entre estos corchetes se considerará un componente variable de tu búsqueda de expresiones regulares. Puedes poner tantos caracteres entre paréntesis como quieras, aunque solo uno será válido por partida.
Muy bien, eso suena un poco complicado, ¡pero no lo es! Así es como se ve en la práctica:
[A]lright
simplemente coincidirá con la palabra "Muy bien". Algo inútil.[AB]lright
coincidirá con “Alright” y “Blright”.Alr[iouxyz]ght
coincidirá con “Alright”, “Alroght”, “Alrugight”, “Alrxght”, etc.
Puede combinar caracteres entre corchetes y utilizar varios corchetes en la misma línea de expresión regular. [AB]r[i1]gh[tuvwxyz]
es una expresión regular válida. ¡Con suerte, sin embargo, no parece tan caótico como podría parecer hace unos minutos!
Los rangos pueden ampliar su búsqueda
La siguiente 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, habrás notado que mis paréntesis incluían muchas letras consecutivas. El más 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. Se vería así:
Muy bien[t-z]
Este fragmento de código de expresiones regulares hará lo mismo que Alrigh[tuvwxyz]
. Es simplemente más claro y más fácil de escribir.
Podrías reemplazar ese mismo rango con [a-z]
si quisieras que aceptara cualquier letra minúscula del alfabeto. O podrías usar [0-9]
si quisieras aceptar cualquier número de un solo dígito.
También puedes combinar rangos dentro del mismo grupo. Por ejemplo, este Alr[i-ux-z]ght
aceptará “Alright”, “Alroght”, “Alrxght” y “Alryght”, pero no aceptará “Alraght” o “ Bien”.
Por cierto, hay otras variaciones de la palabra "Muy bien" que este código aceptará, y muchas más que no. Esta es sólo una breve selección para mantener las cosas, bueno, breves.
Si tiene dificultades para entender lo que significa [i-ux-z]
, puede resultarle útil verlo escrito así:
Esa no es la sintaxis de expresiones regulares correcta; no debes usar una coma para separar rangos. ¡Pero con suerte eso ayudará a que tenga más sentido!
No necesita comas en expresiones regulares para separar rangos y no es necesario colocar los 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 tus búsquedas de expresiones regulares con atajos
Bien, ¡ahora estamos llegando a alguna parte! Si ha seguido este artículo hasta este punto, debería poder mirar el código a continuación y comprender para qué coincide:
Ap[p-r]le[Tt]ool[BbLF]ox
Si puedes leerlo, entonces sabrás que ese fragmento de código regex incluye muchas 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 en juego el carácter "no". Tiene este aspecto:
Para utilizar el carácter ^
, colóquelo al principio del carácter que desea excluir.
¡Hay una trampa! 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 de expresión regular ^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]lright
.
¡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, será excluido de su búsqueda. Así:
¿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í:
Simplemente reemplace word
con cualquier palabra que desee excluir de su búsqueda. Así:
Puede leer la 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, sin excepción. Si simplemente escribe .
como código de expresión regular 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, ¡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 al mismo tiempo tengan caracteres únicos. Los correos electrónicos, por ejemplo, serán todos bastante similares sin ser iguales. El comodín puede ayudarte a combinar elementos que sabes que estarán ahí (como “.com” y “@”) con caracteres que no conoces (como “my_email567”, iCloud o “Gmail”). Otro caso de uso interesante es utilizar el carácter Por ejemplo, si quiero encontrar cada cadena de cuatro caracteres en un cuerpo de texto, podría usar 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 coincidir y otras que deberían haberse ignorado. Es interesante recordar que puedes usar el carácter Además, tenga en cuenta que Muy bien, técnicamente puedes usar el carácter Ahí es donde entran los cuantificadores. Los cuantificadores le permiten especificar la longitud de la cadena que busca cuando usa expresiones regulares con atajos. Por ejemplo, supongamos que desea buscar cualquier palabra que tenga específicamente tres letras. Para especificar eso, querrás usar estos corchetes: Cuando coloca estos corchetes después de estos corchetes Estoy seguro de que eso no tiene mucho sentido ahora, ¡así que veamos un ejemplo! Supongamos que desea buscar los años mencionados en un cuerpo de 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í), puedes usar este código para hacer coincidir los años dentro de ese texto: 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 ubica 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 espacios ni 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ás agregar un espacio al principio del código y un corchete después del 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: 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, digamos que desea encontrar una cadena de cualquier longitud que la expresión regular pueda coincidir. ¡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, escribiría el siguiente código: Una combinación dorada en expresiones regulares es El siguiente cuantificador que necesitarás saber es Por último, está el cuantificador ¡Estamos llegando al final de nuestra guía sobre el uso de expresiones regulares con atajos! Sólo hay dos tipos más de código de expresiones regulares que usarás con los atajos. Los primeros son caracteres que le permiten hacer coincidir cadenas según cómo comienzan y/o terminan. Cuando no está entre corchetes, la función del carácter Sin embargo, no coincide con la palabra completa. Para eso, necesitaría cambiarlo a Como nota al margen, puedes escribir Para especificar el final de la cadena, querrá utilizar el carácter Por ejemplo, si quisiera buscar cadenas/párrafos que terminen en "le", usaría el código Regex incluso negará esta coincidencia si hay un espacio o un signo de puntuación al final de la cadena. "Mesa." no coincidirá con este código. Para solucionarlo, puedes tener en cuenta la puntuación. Este código tiene en cuenta varias formas de puntuación y espaciado que podrían aparecer al final de una cadena, incluido un signo de puntuación seguido de un espacio: Ese código coincidirá con "Capaz", "tabla", "estable" y "capaz". “. ¡Está bien! Ha llegado al final de nuestra guía AppleToolBox sobre el uso de expresiones regulares con accesos directos. Sólo queda una función de expresión regular más por aprender, y es la agrupación. Podría decirse que la agrupación es 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 él, la expresión regular es sólo una función de búsqueda. Sólo puede indicarle 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 puedes copiar coincidencias, almacenarlas en variables, reemplazarlas con otro texto, modificar su formato y todo lo que quieras hacer con expresiones regulares. ¡Afortunadamente, agrupar es muy fácil! Simplemente ponga lo que quiera agrupar entre paréntesis Si coloca una línea completa de código de expresiones regulares entre paréntesis, como Es importante que sólo utilices grupos cuando sea necesario. Dado que se almacenan en la memoria, pueden hacer que el rendimiento de su código disminuya. ¡Guarde grupos para cuando los necesite! También puedes usar grupos para organizar tu código de expresiones regulares con accesos directos. Al hacer esto, no necesariamente se recordará el grupo dentro del paréntesis. 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 “Hello” deben contarse como coincidencias. El “infierno”, por otra parte, no debería contarse. Para que esto funcione, escribo el código La razón por la que no coincide como esperaba es que Además, este código dice que quiero Para solucionar este problema, puedo usar un grupo y reescribir el código como Como puede ver en la captura de pantalla a continuación, este grupo resuelve mi problema sin necesariamente almacenar la información dentro de ese grupo: ¡Y eso es todo! Eso es casi todo lo que podrías querer saber sobre el uso de expresiones regulares con atajos. Con suerte, se sentirá lo suficientemente seguro como para comenzar a experimentar con expresiones regulares ahora, incluso si al principio no tenía sentido para usted. Ahora que conoces los conceptos básicos de las expresiones regulares, ¡estás listo para comenzar a usarlas en tus atajos! Los accesos directos aceptan entradas de expresiones regulares en las siguientes acciones: Usando estas dos acciones de Atajos, puedes insertar expresiones regulares en tus Atajos. Combine esto con las capacidades de automatización de los accesos directos y tendrá una herramienta bastante poderosa a su disposición. Puede usar expresiones regulares para facilitar el formato del texto en los accesos directos, extraer información de correos electrónicos, textos, sitios web, archivos y eventos del calendario, crear texto que siga un formato específico, verificar que la entrada se haya ingresado correctamente y más. Por ejemplo, digamos que desea hacer coincidencias para 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. 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 seguida del nombre de un sitio web como Gmail o iCloud, seguido por un “.com”, “.org” o algún otro tipo de dominio de nivel superior de tres caracteres. Para escribir eso en expresiones regulares, debe especificar que desea una cadena de al menos un carácter seguida inmediatamente por el símbolo "@", luego otra cadena de al menos un carácter, seguida de un ".", y luego seguida por una cadena de tres caracteres. Se vería así: Si pega esto en las acciones Coincidir texto o Reemplazar texto en Accesos directos, tendrá una automatización que puede buscar, almacenar y manipular una dirección de correo electrónico. ¡Puede utilizar este tipo de resolución de problemas para crear sus propias soluciones de expresiones regulares o encontrar algunas que otros hayan creado en línea! Y eso, amigos, es realmente todo. ¡Espero que hayas disfrutado siguiendo este artículo! Este es uno de los artículos más ambiciosos que he escrito para AppleToolBox. Tuve que aprender yo mismo las expresiones regulares para escribirlo y espero que al hacerlo pueda ayudarte a aprenderlo. Usar expresiones regulares con atajos no es diferente a aprender a hacer cualquier otra cosa en su teléfono inteligente o computadora. Simplemente dedique algo de tiempo y paciencia y, eventualmente, lo logrará. Para obtener más guías, tutoriales y noticias sobre todo lo relacionado con Apple, consulte el resto del blog AppleToolBox. Muy bien Alr.ght
coincidirá con "Alright", "Alrxght", "Alr.
para buscar cadenas de una longitud específica.....
con un espacio a cada lado.
.
para contar caracteres..
es un carácter especial en expresiones regulares. Eso significa que deberá agregar un \
delante si desea buscar períodos. Eso significa que tendrías que usar Muy bien\.
para que coincida con "Muy bien".Utilice cuantificadores para especificar la longitud del texto que está buscando
.
para encontrar una cadena que ocupe un número específico de caracteres. Sin embargo, la mayoría de las veces querrás ser más específico.[]
, está especificando que desea una cadena que coincida con la cantidad de caracteres dentro de este {}
y el rango de caracteres. especificado en este {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 largas cadenas de números sin omitir cadenas de números que tengan puntuación al final en lugar de un espacio.Hay algunos cuantificadores más que querrás conocer
[A-Z]
especifica que el primer carácter de la cadena debe ser una letra mayúscula. [a-z]*
especifica que el resto de la cadena debe estar formado por letras minúsculas, pero no importa cuántas letras sigan. Y el espacio al final significa que finalizará la coincidencia una vez que encuentre un espacio al final de las letras minúsculas..*
. Eso significa hacer coincidir cualquier personaje infinitamente. En otras palabras, hará coincidir todo el cuerpo del texto como un solo elemento.+
. 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.?
. Éste es extraño. Especifica que una cadena tiene cero caracteres de longitud o un carácter de longitud. Eso es todo: nada o solo uno. Entonces, si usa el código [a-z]?
con un espacio al principio y al final, buscará letras individuales dentro de un cuerpo de texto.Buscar caracteres al principio y al final de una cadena de texto
^
cambia de "excluir" a "comienza con". Especifica que una cadena debe comenzar con lo que quieras. Por ejemplo, si escribe ^A
, coincidirá con la letra "A" en las cadenas "Muy bien", "Apple" y "A".^A[A-Za-z]*
. Eso coincidirá con la primera palabra de un párrafo/cadena, siempre que esa palabra comience con “A” mayúscula.[A-Za-z]
como [A-z]
. Significa lo mismo, sólo que encuentro que el primero es un poco más claro cuando estás aprendiendo.$
. Funciona igual que el carácter ^
. La única diferencia es que lo escribe al final de un corchete/cadena en lugar de al principio.[A-z]*le$
. Esto coincidirá con "Tabla", "manzana" y "capaz" siempre que estén al final de una cadena o párrafo.Almacene cadenas de texto usando la función de agrupación de expresiones regulares con accesos directos
()
. Todo lo que ponga entre paréntesis será tratado como un grupo.(.*@.*\..{3})
, su código recordará ese grupo, lo que le permitirá ser recordado más adelante en la línea.También puedes utilizar grupos para organizarte.
Hell[A-z]|[0-9]+
. Pero este es el resultado que obtengo:+
solo se aplica al corchete [0-9]
. Necesito que se aplique a ambos soportes.Hell[A-z]
o [0-9]
. Por lo tanto, busca palabras que comienzan con “Infierno” y terminan con una letra, o busca cadenas de números. Lo que realmente necesito es que coincida con instancias de la palabra "Infierno" que terminan con una letra o un número.Hell([A-z]|[0-9])+
. Ahora busca la palabra "Infierno" seguida de cualquier letra o número. Y debido a que +
se aplica a ambos corchetes, puede ser cualquier combinación de letras y números, siempre que haya al menos una letra o un número presente.¿Y ahora qué?
¿Cómo descompondrías esto?
Comience a usar expresiones regulares con atajos para llevar su automatización al siguiente nivel
[A-Z][a-z]+
, ¡nos vemos la próxima vez!