Comment commencer à utiliser Regex avec l'application Raccourcis

Au cours du dernier mois environ, j'ai couvert les applications Raccourcis et Automator sur iOS et macOS, respectivement. Les deux sont des moteurs de l'automatisation dans l'écosystème Apple, et à partir de macOS Monterey cet automne, Shortcuts sera l'application d'automatisation incontournable sur tous les appareils Apple. C'est pourquoi je voulais passer cet article à discuter d'un sujet très important: l'utilisation de regex avec l'application Raccourcis.

Bien que j'aie une formation en informatique et en programmation, je n'avais jamais rencontré de regex. Peut-être que le nom m'a fait peur, ou peut-être que c'était le code, qui est l'un des codes les moins lisibles que j'aie jamais vus.

Quoi qu'il en soit, j'ai décidé d'approfondir les regex après avoir couvert l'application Raccourcis au cours des derniers mois. Et ce que j'ai découvert, c'est que bon nombre des limitations que j'avais rencontrées avec les raccourcis, ainsi qu'Automator, pouvaient être surmontées avec regex.

En d'autres termes, ce n'était pas que ces applications manquaient de fonctionnalités, mais que je manquais d'éducation.

Donc, dans le post d'aujourd'hui, vous et moi allons apprendre ensemble les tenants et aboutissants de regex. De cette façon, vous pouvez tirer le meilleur parti de chacune de ces applications.

Nous allons couvrir les bases de regex (en commençant par ce que c'est), ce que vous pouvez en faire dans l'application Raccourcis, certains sites Web et ressources que vous pouvez utiliser si vous n'avez pas envie d'apprendre les regex vous-même, puis nous entrerons dans les concepts de base et les mécanismes de la regex Langue.

Bon, commençons !

Contenu

  • Que sont les expressions régulières (c'est-à-dire les expressions régulières) ?
    • Ce que vous pouvez faire avec regex
  • Comment pouvez-vous utiliser regex avec l'application Raccourcis ?
  • Utilisez regex101.com pour tester vos expressions régulières
  • Si vous ne voulez pas apprendre à utiliser regex avec l'application Raccourcis, lisez ceci
  • Regex pour les débutants: commencez à utiliser regex avec des raccourcis
    • Que sont les saveurs regex ?
    • Sites Web et références pour vous aider à commencer à apprendre regex avec des raccourcis
    • Comment effectuer une recherche de texte de base en utilisant regex avec des raccourcis
    • Ajout de composants variables à vos recherches d'expressions régulières
    • Les gammes peuvent élargir votre recherche
    • Comment exclure des mots et des caractères de vos recherches regex avec des raccourcis
    • Les caractères génériques peuvent vous offrir plus d'options de recherche
    • Utilisez des quantificateurs pour spécifier la longueur du texte que vous recherchez
    • Il y a quelques autres quantificateurs que vous voudrez connaître
    • Recherche de caractères au début et à la fin d'une chaîne de texte
    • Stocker des chaînes de texte à l'aide de la fonction de regroupement de regex avec des raccourcis
  • Maintenant quoi?
    • Comment décomposeriez-vous cela ?
  • Commencez à utiliser regex avec des raccourcis pour faire passer votre automatisation au niveau supérieur
    • Articles Similaires:

Que sont les expressions régulières (c'est-à-dire les expressions régulières) ?

Une expression régulière, ou "regex", est un morceau de code que vous pouvez utiliser pour rechercher un morceau de texte à l'intérieur d'un morceau de texte plus grand.

Au cas où vous ne le sauriez pas, un morceau de texte dans un autre morceau de texte est appelé une "chaîne" en programmation. Par exemple, le mot « vert » est une chaîne de caractères du texte « Je portais un pantalon vert aujourd'hui ».

Autrement dit, regex est un moyen de localiser une chaîne de texte dans un plus grand corps de texte. Et parce que regex est écrit en code, vous pouvez l'utiliser pour effectuer des opérations assez complexes.

Par exemple, si vous souhaitez rechercher le mot « e-mail », vous pouvez facilement écrire un code regex qui recherche un e-mail.

Si vous souhaitez trouver un e-mail à l'intérieur d'un paragraphe et que vous ne savez pas exactement de quoi il s'agit, vous devrez rechercher une chaîne de texte formatée comme un e-mail. c'est-à-dire une chaîne qui suit le "[email protégé]” format.

Maintenant, disons que vous voulez non seulement trouver un e-mail à partir d'un paragraphe, mais tous e-mail. Peut-être que vous voulez les copier rapidement ailleurs, les mettre à jour dans un nouveau format ou les remplacer pour qu'ils disent tous "[email protégé]“.

Au fur et à mesure que vous deviendrez de plus en plus compétent et expérimenté avec regex, vous pourrez faire toutes ces choses et plus encore.

Ce que vous pouvez faire avec regex

D'accord, alors peut-être que les exemples d'e-mails que je viens de donner ne sont pas si pratiques. Ne vous inquiétez pas, c'est loin de la limite de ce que vous pouvez accomplir en utilisant regex avec l'application Raccourcis.

De manière générale, tout ce que regex peut faire entre dans l'une de ces quatre catégories :

  1. Trouver une chaîne de texte dans un morceau de texte plus grand (c'est-à-dire rechercher un mot/une chaîne/un type de chaîne sur une page de texte).
  2. Confirmez qu'une chaîne de texte correspond au format souhaité (c'est-à-dire en vérifiant qu'une chaîne de texte est en majuscule/ordonnée/ponctué correctement).
  3. Remplacer ou insérer du texte dans une zone spécifique d'un morceau de texte.
  4. Divisez une chaîne de texte à des points spécifiés (par exemple, divisez un morceau de texte chaque fois qu'il y a une virgule).

Le niveau de profondeur que vous pouvez utiliser pour interagir avec chacun de ces types de fonctions et la façon dont vous pouvez les combiner font de regex un outil incroyablement puissant pour analyser et manipuler du texte.

Comment pouvez-vous utiliser regex avec l'application Raccourcis ?

Très bien, vous avez maintenant, espérons-le, une idée de base de l'utilisation de l'expression régulière. C'est un type de code que vous pouvez utiliser pour rechercher du texte, même si vous ne savez pas exactement de quoi il s'agit.

Alors, en quoi cela vous aide-t-il dans les raccourcis ? Semblable à l'ajout de scripts à vos raccourcis, c'est un moyen de passer des automatisations de base (Textez-moi quand la porte d'entrée s'ouvre) vers des options plus avancées (Créer automatiquement un événement de calendrier pour mes réunions chaque fois que je reçois un e-mail pour une réunion Zoom depuis le travail).

Vous pouvez utiliser regex avec des raccourcis pour vérifier qu'une entrée est correcte. Par exemple, si vous créez un raccourci qui ne fonctionne qu'avec les URL, vous pouvez utiliser regex au début du raccourci pour vous assurer que l'utilisateur exécute l'automatisation sur une URL.

Vous pouvez combiner regex avec des scripts pour créer de puissants raccourcis. Par exemple, ce raccourci utilise des expressions régulières et des scripts pour transformer un code-barres en une URL pour votre magasin préféré.

Lorsque vous utilisez l'application Raccourcis sur Mac (à venir à l'automne 2021), vous pouvez utiliser regex pour effectuer des actions par lots sur un morceau de texte. Par exemple, vous pouvez copier tous les e-mails dans une sélection de texte sous forme de liste ordonnée. Vous pouvez également remplacer tous les noms d'un document par des caractères « * » pour garantir la confidentialité.

Vous pouvez même copier un corps de texte à partir d'une application, le reformater pour qu'il corresponde aux préférences d'une autre application, puis le coller dans cette autre application, le tout avec un seul clic droit.

En d'autres termes, regex vous donne un contrôle total sur la gestion du texte avec l'application Raccourcis. Cela peut ne pas sembler très utile au début, mais maintenant que vous savez qu'il existe, vous commencerez sûrement à remarquer combien de raccourcis pourraient être améliorés par cette fonctionnalité. Et vous remarquerez également que beaucoup de raccourcis ne sont même pas possibles sans regex.

Utilisez regex101.com pour tester vos expressions régulières

Une fois que vous commencez à utiliser regex avec des raccourcis, vous rencontrerez un point de frustration :

Il est vraiment difficile de tester votre code regex. Et ce n'est pas unique à regex. Tester quoi que ce soit avec l'application Raccourcis est un peu pénible. La seule façon de le faire est d'exécuter le raccourci. Cette méthode n'est pas mauvaise lorsque vous testez simplement les fonctionnalités de raccourcis intégrées.

Mais pour tester le code, cela ne permet pas une vérification ligne par ligne et n'offre pas beaucoup de commentaires.

Pour cela, je recommanderais d'utiliser regex101.com. C'est un site dans lequel vous pouvez taper du code regex en temps réel. Vous pouvez également saisir du texte dans un éditeur de texte sur la même page Web. Au fur et à mesure que vous tapez chacun, vous verrez si votre regex fonctionne, pourquoi elle fonctionne ou ne fonctionne pas, et obtenez des informations sur les correspondances trouvées.

regex101.com utilise une saveur différente de regex que celle prise en charge par les raccourcis (plus de détails dans une minute), mais elle est suffisamment proche pour que vous ne rencontriez pas trop de problèmes.

L'utilisation de cet outil est excellente car vous pouvez d'abord y écrire votre regex, puis la copier dans l'application Raccourcis une fois qu'elle fonctionne comme prévu.

Si vous ne voulez pas apprendre à utiliser regex avec l'application Raccourcis, lisez ceci

Je comprends - tout le monde ne voudra pas apprendre à utiliser regex avec des raccourcis. C’est une compétence, et cela signifie qu’il faudra du temps et de la pratique. C'est loin d'être aussi simple que le reste des fonctionnalités de glisser-déposer de l'application Raccourcis.

Pas de soucis! Bien que vous ne puissiez pas tirer autant de profit de l'application Raccourcis que quelqu'un qui prend le temps d'apprendre l'expression régulière, des options s'offrent toujours à vous. À savoir, il existe des sites et des pages en ligne où les gens ont créé une liste de morsures de code regex que vous pouvez copier et coller dans l'application Raccourcis.

Voici quelques liens à consulter si vous ne voulez pas apprendre regex :

  • 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

Lisez simplement ces liens et vous devriez être en mesure de trouver des solutions regex courantes pour les raccourcis que vous souhaitez créer. Ce ne sera pas une option sans éducation, car il vous faudra encore un peu de temps pour comprendre ce que vous regardez. Mais c'est beaucoup plus simple et une solution idéale pour quelqu'un qui n'a pas le temps de se mettre en regex.

Cela dit, je dois admettre que regex n'est pas trop difficile à apprendre, surtout si vous avez une certaine expérience du code shell ou de la programmation pour débutants. Regex me semblait au début du charabia, mais après une heure de lecture d'articles et de jeu avec regex101.com, j'ai pu commencer à écrire des regex pour mes raccourcis.

C'est juste une question de familiarité - après l'avoir regardé assez longtemps, cela cessera d'avoir l'air si étrange. Donc, si vous avez le temps et que vous êtes simplement intimidé, ne le soyez pas !

Regex pour les débutants: commencez à utiliser regex avec des raccourcis

Bon, assez de préface! Vous devriez avoir une idée de ce qu'est l'expression régulière, de ce qu'elle peut faire, pourquoi vous devriez l'apprendre et suffisamment d'informations pour décider si vous voulez l'apprendre. Nous allons maintenant entrer dans le vif du sujet.

Il y a beaucoup de contenu ci-dessous, mais ne vous inquiétez pas! Cet article va être plus un guide d'étude. Je recommande de parcourir chaque section pour avoir une idée de la mécanique utilisée par regex. Cela devrait également vous aider à comprendre si vous ne savez toujours pas ce qu'est la regex.

Une fois que vous avez parcouru les choses, je vous recommande d'ouvrir regex101.com et de jouer avec chacun des outils de chaque section ci-dessous. Cela vous aidera à voir à quoi ressemblent les concepts dans la pratique et à améliorer votre mémoire. Une fois que vous avez fait cela, vous pouvez simplement considérer cet article comme un point de référence - quelque chose auquel vous pouvez revenir lorsque vous oubliez les bits et les bobs de regex.

OK allons-y!

Que sont les saveurs regex ?

Tout d'abord, nous allons examiner les saveurs regex. Ne vous inquiétez pas, cela n'affectera pas votre utilisation quotidienne de regex avec des raccourcis. C'est juste quelque chose à savoir avant de commencer.

Il existe différentes versions de regex qui sont connues sous le nom de « saveurs ». Ces différentes versions sont toujours très similaires. Si vous pouvez apprendre à lire et à écrire une saveur, vous devriez être capable de lire n'importe laquelle d'entre elles. Il y aura juste de légères différences dans la façon dont votre code regex doit être formaté.

En programmation, ces spécificités de formatage sont appelées « syntaxe ». C'est juste la façon dont vous devez écrire votre code pour que ce code soit compris par l'application dans laquelle vous l'écrivez.

Voici pourquoi la syntaxe est importante

« Hé mon ami, comment se passe ta journée? »

", va ami? votre jour Hey comment "

Les deux phrases ont les mêmes mots, caractères et espaces. Un seul a du sens, cependant, et c'est parce qu'il suit la syntaxe conventionnelle.

En codage, un langage de programmation peut comprendre la première version mais pas la seconde. Pour un autre langage de programmation, cependant, le second peut avoir tout son sens tandis que le premier ressemble à du charabia. Pour quelqu'un qui parle anglais, cependant, vous pouvez probablement comprendre l'intention des deux lignes, même s'il faudra un peu de travail pour en comprendre le sens.

C'est (en quelque sorte) à quoi ressemblent les différentes saveurs de regex. Ils auront tous l'air un peu différents et un peu similaires à vous. Mais vous devez utiliser la bonne saveur pour l'application que vous utilisez, sinon cette application n'aura aucune idée de ce que vous avez écrit.

L'application Raccourcis comprend la saveur ICU de regex, c'est donc la saveur que vous voudrez utiliser. Le site regex101.com propose plusieurs versions parmi lesquelles vous pouvez choisir sur la gauche de la page. Il utilise cependant PCRE, qui est assez similaire à ICU.

Il est important de savoir qu'il existe différentes saveurs de regex, car vous rencontrerez sans aucun doute différentes saveurs en ligne. Si vous trouvez un peu de regex que vous voulez voler mais que vous n'arrivez pas à le faire fonctionner avec des raccourcis, ou qu'il ne semble pas correct, vérifiez dans quelle version il est écrit !

Sites Web et références pour vous aider à commencer à apprendre regex avec des raccourcis

Une autre chose que je veux couvrir avant de commencer à explorer les mécanismes réels de l'écriture de regex sont les ressources. Je ne prétends en aucun cas que cet article est une ressource exhaustive sur l'apprentissage des regex. Il s'agit simplement d'un point de départ utile pour ceux qui souhaitent utiliser regex avec des raccourcis.

Si vous souhaitez approfondir les regex ou si vous pensez que cet article ne vous apporte pas l'aide dont vous avez besoin, vous pouvez consulter certains de ces articles, guides et outils :

  • https://regex101.com – Un site Web qui vous permet de tester votre code regex en temps réel.
  • https://www.shortcutfoo.com/app/dojos/regex/cheatsheet – Une feuille de triche pour quand vous oubliez ce que fait chaque personnage
  • http://www.rexegg.com – Ce site Web est une ressource complète pour apprendre tout ce que vous devez savoir sur les regex. Vérifiez celui-ci si vous voulez devenir compétent avec regex.
  • https://scottwillsey.com/blog/ios/regex1/ - Il s'agit d'une série de blogs en quatre parties sur l'utilisation de regex avec des raccourcis. J'adopte une approche très différente de ce guide, il devrait donc faire une belle série d'accompagnement à cet article.
  • Stack Overflow et Reddit sont tous deux de bons sites Web pour partager vos questions et vos progrès sur les regex pour obtenir des conseils et des réponses.

Ces ressources sont distinctes de celles énumérées dans le Si vous ne voulez pas apprendre à utiliser regex avec l'application Raccourcis section car ils vous obligeront tous à commencer à apprendre regex. Ils sont plus complets, tandis que les autres ne sont que des points de référence.

Comment effectuer une recherche de texte de base en utilisant regex avec des raccourcis

Bien! Nous sommes maintenant arrivés au point que tout le monde attendait: nous allons apprendre les bases de l'utilisation de regex avec des raccourcis.

Commençons par une recherche de base, car c'est la chose la plus simple que vous puissiez faire avec regex. Comme mentionné précédemment, je recommande d'ouvrir regex101.com dans un autre onglet afin que vous puissiez suivre.

Dans sa forme la plus basique, regex recherchera (ou rencontre) tout ce que vous tapez dedans. Par exemple, si je devais taper Bien en tant que code regex, il trouverait chaque instance du mot « Alright » dans ce guide.

La casse, l'espacement et la ponctuation sont importants. Cela veut dire que Bien, bien, Bien!, et Bien , vont tous produire des résultats différents.

Et c'est tout! Chaque fois que vous tapez quelque chose dans une recherche regex sans utiliser de caractères spéciaux, regex correspondra à tout ce qui correspond exactement à ce que vous avez tapé.

Il y a un hic! Certains caractères de votre clavier sont également des caractères regex spéciaux. Cela signifie qu'ils exécutent une sorte de fonction dans le code regex.

Les ? le symbole est l'un de ces caractères. Il est utilisé dans le code regex comme quantificateur. Donc, si vous essayez de rechercher « D'accord? » en tappant Bien? comme code regex, vous n'obtiendrez pas ce que vous voulez.

Pour résoudre ce problème, vous devez spécifier que vous souhaitez utiliser «? » comme une chaîne, pas comme un caractère spécial. Pour faire cela pour ce personnage ou n'importe quel autre, il suffit d'ajouter un \ juste avant le caractère dont vous souhaitez annuler les propriétés spéciales.

Donc, si vous voulez rechercher « D'accord? » avec regex, votre code ressemblera à ceci :

Bien\?

Si vous n'êtes pas sûr qu'un caractère spécifique soit traité comme un caractère spécial par regex, vous pouvez vérifier cette feuille de triche pour tous les caractères spéciaux dans regex.

Recherchez plus d'un mot à l'aide du caractère « ou »

Un autre élément important de la recherche de chaînes avec regex est l'utilisation de la fonction "ou". Il s'agit d'un caractère que vous pouvez placer entre deux mots/caractères pour dire « Correspond à ceci ou à cela ».

Par exemple, si je veux rechercher dans un corps de texte le mot « d'accord » et « D'accord », j'utiliserais le | personnage. Ainsi:

D'accord|d'accord

Si vous avez du mal à trouver le | personnage, maintenez le décalage touche enfoncée et appuyez sur la \ clé. C'est au dessus du revenir touche sur la plupart des claviers.

Ajout de composants variables à vos recherches d'expressions régulières

Ok, maintenant que vous savez à quoi ressemble une regex neutre, il est temps de choisir votre premier caractère spécial. Ce serait les crochets, qui sont ces choses [].

Tout ce que vous mettez entre ces crochets sera considéré comme un élément variable de votre recherche d'expression régulière. Vous pouvez mettre autant de caractères entre parenthèses que vous le souhaitez, mais un seul sera valide par match.

Bon, ça a l'air un peu compliqué, mais ça ne l'est pas! Voici à quoi cela ressemble en pratique :

  • [Bien correspondra simplement au mot « Très bien ». Un peu inutile.
  • [AB] bien correspondra à la fois à « Alright » et « Blright ».
  • Alr[iouxyz]ght correspondra à "Alright", "Alroght", "Alrught", "Alrxght", et ainsi de suite.

Vous pouvez combiner des caractères entre parenthèses et utiliser plusieurs parenthèses dans la même ligne de regex. [AB]r[i1]gh[tuvwxyz] est un élément valide de regex. Espérons, cependant, que cela n'ait pas l'air aussi chaotique qu'il aurait pu l'être il y a quelques minutes !

Les gammes peuvent élargir votre recherche

Le prochain bit de regex qui sera utile avec les raccourcis est la plage. Les plages vous permettent de spécifier une plage de caractères que vous accepterez.

Dans la section précédente, vous avez peut-être remarqué que mes crochets comprenaient beaucoup de lettres consécutives. Le plus long était [tuvwxyz]. Ces lettres apparaissent dans l'alphabet dans le même ordre, les unes à côté des autres.

Cela signifie que je pourrais utiliser une plage au lieu de les taper. Cela ressemblerait à ceci :

D'accord[t-z]

Ce morceau de code regex fera la même chose que D'accord[tuvwxyz]. C'est juste plus propre et plus facile à écrire.

Vous pouvez remplacer cette même gamme par [a-z] si vous vouliez qu'il accepte n'importe quelle lettre minuscule de l'alphabet. Ou vous pouvez utiliser [0-9] si vous vouliez accepter n'importe quel numéro à un chiffre.

Vous pouvez également combiner des plages au sein d'une même tranche. Par exemple, ce Alr[i-ux-z]ght acceptera "Alright", "Alroght", "Alrxght" et "Alryght", mais il n'acceptera pas "Alraght" ou "Alrvght".

Il existe d'autres variantes du mot « D'accord » que ce code acceptera, d'ailleurs, et bien d'autres qu'il n'acceptera pas. C'est juste une courte sélection pour garder les choses, eh bien, courtes.

Si vous avez du mal à comprendre ce que [i-ux-z] Cela signifie que cela pourrait aider de le voir écrit comme ceci :

[je-u, x-z]

Ce n'est pas la syntaxe regex correcte - vous ne devriez pas utiliser une virgule pour séparer les plages. Mais j'espère que cela l'aidera à avoir plus de sens !

Vous n'avez pas besoin de virgules dans l'expression régulière pour séparer les plages et vous n'avez pas besoin de mettre les plages les unes à côté des autres. Vous pouvez le changer en [i-uabcx-z]. Cela accepterait les mêmes plages qu'avant plus les caractères "a", "b" et "c".

Comment exclure des mots et des caractères de vos recherches regex avec des raccourcis

Ok, alors maintenant nous arrivons quelque part! Si vous avez suivi cet article jusqu'à présent, vous devriez pouvoir regarder le code ci-dessous et comprendre à quoi il correspond :

Ap[p-r]le[Tt]ool[BbLF]ox

Si vous pouvez le lire, alors vous savez que ce morceau de code regex comprend beaucoup des variations possibles du mot « AppleToolBox ». Et si on voulait réduire le nombre de variantes qu'il accepte sans altérer notre gamme ?

C'est là qu'intervient le caractère "non". Cela ressemble à ceci: ^. Si vous avez du mal à le trouver sur votre clavier (comme moi), maintenez décalage et appuyez sur le 6 touche de votre clavier.

Pour utiliser le ^ caractère, placez-le au début du caractère que vous souhaitez exclure.

Il y a un hic! Les ^ le caractère ne fonctionne pas en dehors d'une fonction regex. Vous ne pouvez pas simplement le placer devant la lettre « A » pour l'exclure de votre recherche. Le code regex ^ Un cherchera simplement un « A » majuscule.

Au lieu de cela, combinez-le avec des crochets et d'autres caractères spéciaux regex.

Par exemple, si je voulais rechercher une instance du mot "D'accord" qui ne commence pas par la lettre "A", j'utiliserais le code [^A]très bien.

Vous pouvez même le combiner avec des gammes! Il suffit de le mettre au début de votre parenthèse, et tout ce qui se trouve à l'intérieur de cette parenthèse, plages incluses, sera exclu de votre recherche. Ainsi:

Que faire si vous souhaitez exclure un mot spécifique de votre recherche ?

J'ai eu du mal à trouver cette information. Un utilisateur de Stack Overflow avait la solution, cependant, et cela ressemble à ceci :

^(?!(mot)$).+$

Remplacez simplement mot avec le mot que vous souhaitez exclure de votre recherche. Ainsi:

Vous pouvez lire ce post Stack Overflow ici si vous souhaitez en savoir plus sur ce cas d'utilisation spécifique.

Les caractères génériques peuvent vous offrir plus d'options de recherche

Cela nous amène aux jokers. Le caractère générique, qui est un point ., est utilisé pour représenter n'importe quel caractère, sans exception. Si vous tapez simplement . en tant que code regex avec les raccourcis, il renverra chaque caractère d'un corps de texte en tant que correspondance individuelle.

Je ne recommanderais pas de l'utiliser à cette fin, bien sûr! Au lieu de cela, je recommande de l'utiliser à la place d'un seul caractère dans un mot. Par exemple, Bien correspondra à « Alright », « Alrxght », « Alr

Et c'est à peu près tout! Le caractère générique est assez facile à comprendre. ça correspond à tout! Cela le rend utile pour trouver des chaînes qui correspondent à un format spécifique tout en ayant des caractères uniques.

Les e-mails, par exemple, vont tous se ressembler sans être identiques. Le caractère générique peut vous aider à combiner des éléments dont vous savez qu'ils seront là (comme ".com" et "@") avec des caractères que vous ne connaissez pas (comme "my_email567", iCloud ou "Gmail").

Un autre cas d'utilisation intéressant est l'utilisation du . caractère pour rechercher des chaînes d'une longueur spécifique.

Par exemple, si je veux trouver chaque chaîne de quatre caractères dans un corps de texte, je pourrais utiliser ... avec un espace de chaque côté.

Et voici toutes les chaînes de sept caractères dans ce même corps de texte :

Notez que ce n'est pas une méthode parfaite pour trouver des chaînes d'une certaine longueur. Comme vous pouvez le voir dans les exemples ci-dessus, certaines chaînes correspondent alors qu'elles ne devraient pas l'être et d'autres auraient dû être ignorées. Il est juste intéressant de se rappeler que vous pouvez utiliser le . caractère pour compter les caractères.

Aussi, gardez à l'esprit que le . est un caractère spécial dans regex. Cela signifie que vous devrez ajouter un \ devant si vous voulez rechercher des périodes. Cela signifie que vous devrez utiliser Bien\. pour correspondre à « D'accord ».

Utilisez des quantificateurs pour spécifier la longueur du texte que vous recherchez

D'accord, vous pouvez donc techniquement utiliser le . caractère pour rechercher une chaîne qui prend un nombre spécifique de caractères. La plupart du temps, cependant, vous voudrez être plus précis.

C'est là qu'interviennent les quantificateurs. Les quantificateurs vous permettent de spécifier la longueur de chaîne que vous recherchez lors de l'utilisation de regex avec des raccourcis.

Par exemple, supposons que vous vouliez trouver un mot composé spécifiquement de trois lettres. Pour spécifier cela, vous devrez utiliser ces crochets :

{}

Lorsque vous placez ces crochets après ces [] crochets, vous spécifiez que vous voulez une chaîne qui correspond au nombre de caractères à l'intérieur de ce {} et la plage de caractères spécifiée dans ce [].

Je suis sûr que cela n'a pas beaucoup de sens maintenant, alors regardons un exemple !

Supposons que vous souhaitiez rechercher les années mentionnées dans un corps de texte. Puisqu'une année se compose de quatre nombres (évidemment pas tous les ans de tous les temps, suivez-moi ici), vous pouvez utiliser ce code pour faire correspondre les années dans ce texte :

[0-9]{4}

Ce code dit que nous voulons une chaîne composée de caractères de 0 à 9 qui est spécifiquement de quatre caractères. Vous pouvez voir comment il localise cette chaîne spécifique dans la capture d'écran suivante :

Je dois noter qu'il y a quelques problèmes avec ce code regex, et c'est qu'il ne tient pas compte des espaces ou de la ponctuation. Ainsi, si le code trouve un nombre de plus de quatre caractères, comme « 12345678 », il trouvera la chaîne « 1234 » et la chaîne « 5678 ».

Pour résoudre ce problème, vous voudriez ajouter un espace au début du code et un crochet après le {4} qui contient un autre espace, un point, un point d'interrogation, une virgule et un point d'exclamation. De cette façon, il ignorera les longues chaînes de nombres sans manquer les chaînes de nombres qui ont une ponctuation à leur fin au lieu d'un espace.

Vous pouvez également utiliser des quantificateurs pour spécifier plusieurs longueurs de chaîne. Par exemple, je veux peut-être trouver une chaîne de quatre caractères, mais aussi sept et onze. Voici à quoi cela ressemblerait :

[a-z]{4,7,11}

Il y a quelques autres quantificateurs que vous voudrez connaître

Ok, donc il y a encore plus de quantificateurs! Ces derniers quantificateurs sont utilisés lorsque vous souhaitez spécifier la longueur d'une chaîne sans être trop spécifique.

Par exemple, disons que vous voulez trouver une chaîne de n'importe quelle longueur que l'expression régulière peut correspondre. Comme un nom! Les noms (dans les pays occidentaux) commencent par une lettre majuscule et se terminent par un nombre aléatoire de lettres minuscules, suivies d'un espace. Pour trouver un nom, vous écririez le code suivant :

[A-Z][a-z]*

[A-Z] spécifie que le premier caractère de la chaîne doit être une lettre majuscule. [a-z]* spécifie que le reste de la chaîne doit être composé de lettres minuscules, mais peu importe le nombre de lettres qui suivent. Et l'espace à la fin signifie qu'il mettra fin au match une fois qu'il aura trouvé un espace à la fin des lettres minuscules.

Un combo d'or dans regex est .*. Cela signifie correspondre à n'importe quel caractère à l'infini. En d'autres termes, il correspondra à l'ensemble du corps du texte en un seul élément.

Le prochain quantificateur que vous devez connaître est +. Celui-ci est juste comme * sauf qu'il ne correspondra pas à une chaîne avec zéro caractère. * correspondra à n'importe quelle longueur de chaîne, ce qui inclut les chaînes qui n'ont pas de longueur. +, d'autre part, a besoin d'une chaîne avec au moins un caractère ou plus.

Enfin, il y a le ? quantificateur. C'est étrange. Il spécifie qu'une chaîne a une longueur de zéro caractère ou d'un caractère. C'est tout - rien ou juste un. Donc si vous utilisez le code [a-z] ? avec un espace au début et à la fin, il recherchera des lettres simples dans un corps de texte.

Recherche de caractères au début et à la fin d'une chaîne de texte

Nous approchons de la fin de notre guide sur l'utilisation de regex avec des raccourcis! Il n'y a que deux autres types de code regex que vous utiliserez avec les raccourcis.

Les premiers sont des caractères qui vous permettent de faire correspondre des chaînes en fonction de leur début et/ou de leur fin.

Lorsqu'il n'est pas entre parenthèses, le ^ le rôle du personnage passe de « exclure » ​​à « commence par ». Il spécifie qu'une chaîne doit commencer par ce que vous voulez. Par exemple, si vous écrivez ^ Un, qui correspondrait à la lettre « A » dans les chaînes « Alright », « Apple » et « A ».

Cela ne correspond pas au mot entier, cependant. Pour cela, il faudrait le changer en ^A[A-Za-z]*. Cela correspondra au premier mot d'un paragraphe/chaîne, tant que ce mot commence par un « A » majuscule.

En remarque, vous pouvez écrire [A-Za-z] comme [A-z]. Ça veut dire la même chose, je trouve juste que le premier est un peu plus clair quand on apprend.

Pour spécifier la fin de la chaîne, vous voudrez utiliser le $ personnage. Il fonctionne de la même manière que le ^ personnage. La seule différence est que vous l'écrivez à la fin d'une parenthèse/chaîne plutôt qu'au début.

Par exemple, si vous vouliez trouver des chaînes/paragraphes qui se terminent par "le", vous utiliseriez le code [A-z]*le$. Cela correspondra à "Table", "apple" et "capable" tant qu'ils sont à la fin d'une chaîne ou d'un paragraphe.

Regex refusera même cette correspondance s'il y a un espace ou un signe de ponctuation à la fin de la chaîne. "Table." ne correspondra pas à ce code.

Pour résoudre ce problème, vous pouvez prendre en compte la ponctuation. Ce code prend en compte diverses formes de ponctuation et d'espacement pouvant apparaître à la fin d'une chaîne, notamment un signe de ponctuation suivi d'un espace :

[A-z]*(le[\.\?!, ]?[ ]?)$

Ce code correspondra à « Able », « table », « stable » et « capable? “.

Stocker des chaînes de texte à l'aide de la fonction de regroupement de regex avec des raccourcis

Bien! Vous êtes arrivé à la fin de notre guide AppleToolBox sur l'utilisation de regex avec des raccourcis. Il ne reste plus qu'une fonction regex à apprendre, et c'est le regroupement.

Le regroupement est sans doute la caractéristique la plus importante de regex car c'est ce qui vous permet de faire des choses avec le code regex que vous écrivez. Sans cela, regex n'est qu'une fonction de recherche. Il ne peut que vous dire si une chaîne existe dans un corps de texte plus large, c'est-à-dire qu'elle renverra « vrai » ou « faux ».

Avec le regroupement, cependant, vous pouvez stocker les résultats de votre code regex. Et cela signifie que vous pouvez copier des correspondances, les stocker dans des variables, les remplacer par un autre texte, modifier leur formatage et tout ce que vous voudriez faire avec regex.

Heureusement, le regroupement est super facile! Mettez simplement ce que vous voulez regrouper entre parenthèses (). Tout ce que vous mettez entre parenthèses sera traité comme un groupe.

Si vous mettez une ligne entière de code regex entre parenthèses, comme (.*@.*\..{3}), alors ce groupe sera mémorisé par votre code, ce qui lui permettra d'être rappelé plus tard.

Il est important que vous n'utilisiez les groupes que lorsque vous en avez besoin. Comme ils sont stockés en mémoire, ils peuvent entraîner une diminution des performances de votre code. Enregistrez les groupes pour quand ils sont nécessaires !

Vous pouvez également utiliser des groupes pour l'organisation

Vous pouvez également utiliser des groupes pour organiser votre code regex avec des raccourcis. Lorsque vous faites cela, le groupe entre parenthèses ne sera pas nécessairement mémorisé.

Par exemple, disons que je veux faire correspondre le mot « Bonjour », sauf que je me fiche de la dernière lettre. Il peut s'agir de n'importe quelle lettre minuscule ou majuscule ou même d'un nombre. « Hell3838djdjajaksks » et « Hello » doivent être comptés comme des correspondances. « L'enfer », en revanche, ne doit pas être compté.

Pour que cela fonctionne, j'écris le code Enfer[A-z]|[0-9]+. Mais voici le résultat que j'obtiens :

La raison pour laquelle cela ne correspond pas à ce que j'attendais est que le + n'est appliqué qu'à la [0-9] support. J'en ai besoin pour s'appliquer aux deux supports.

De plus, ce code dit que je veux soit Enfer[A-z]ou[0-9]. Il s'agit donc de rechercher des mots commençant par « Enfer » et se terminant par une lettre, ou de rechercher des chaînes de chiffres. Ce dont j'ai réellement besoin, c'est qu'il corresponde aux instances du mot "Enfer" qui se terminent par une lettre ou un chiffre.

Pour résoudre ce problème, je peux utiliser un groupe et réécrire le code comme Enfer([A-z]|[0-9])+. Maintenant, il recherche le mot "Enfer" suivi d'une lettre ou d'un chiffre. Et parce que le + est appliqué aux deux crochets, il peut s'agir de n'importe quelle combinaison de lettres et de chiffres, à condition qu'il y ait au moins une lettre ou un chiffre.

Comme vous pouvez le voir dans la capture d'écran ci-dessous, ce groupe résout mon problème sans nécessairement stocker les informations au sein de ce groupe :

Maintenant quoi?

Et c'est tout! C'est presque tout ce que vous pourriez vouloir savoir sur l'utilisation de regex avec des raccourcis. Espérons que vous vous sentez suffisamment en confiance pour commencer à expérimenter avec regex maintenant, même si cela n'avait pas de sens pour vous au début.

Maintenant que vous connaissez les bases de regex, vous êtes prêt à commencer à l'utiliser dans vos raccourcis! Les raccourcis acceptent les entrées regex dans les actions suivantes :

  • Faire correspondre le texte
  • Remplacer le texte

En utilisant ces deux actions Raccourcis, vous pouvez insérer une expression régulière dans vos raccourcis.

Associez cela aux capacités d'automatisation des raccourcis et vous disposez d'un outil assez puissant.

Vous pouvez utiliser regex pour faciliter la mise en forme du texte dans les raccourcis, pour extraire des informations des e-mails, des textes, des sites Web, des fichiers et des événements de calendrier, créez du texte qui suit un format spécifié, vérifiez que l'entrée a été saisie correctement et Suite.

Par exemple, disons que vous voulez faire correspondre les e-mails. Peut-être devez-vous vérifier qu'une chaîne de texte est un e-mail, ou peut-être souhaitez-vous extraire un ou plusieurs e-mails d'un corps de texte.

Comment décomposeriez-vous cela ?

Eh bien, vous savez que la structure de base d'un e-mail sera une combinaison de lettres, de chiffres et de caractères, suivie du symbole "@", puis suivi du nom d'un site Web comme Gmail ou iCloud, qui est ensuite suivi d'un ".com", ".org" ou d'un autre type de niveau supérieur à trois caractères domaine.

Pour écrire cela dans regex, vous devez spécifier que vous voulez une chaîne d'au moins un caractère qui soit immédiatement suivie par le symbole « @ », puis une autre chaîne d'au moins un caractère, suivie d'un «. », puis suivie d'une chaîne de trois personnages. Cela ressemblerait à ceci :

[email protégé]+\..{3}

Si vous collez ceci dans le Faire correspondre le texte ou Remplacer le texte actions dans Raccourcis, vous aurez une automatisation qui peut trouver, stocker et manipuler une adresse e-mail.

Vous pouvez utiliser ce type de résolution de problèmes pour trouver vos propres solutions d'expression régulière ou pour en trouver d'autres en ligne !

Commencez à utiliser regex avec des raccourcis pour faire passer votre automatisation au niveau supérieur

Et ça, mes amis, c'est vraiment ça. J'espère que vous avez aimé suivre cet article! C'est l'une des pièces les plus ambitieuses que j'ai jamais écrites pour AppleToolBox. J'ai dû apprendre moi-même regex pour l'écrire, et j'espère qu'en faisant cela, j'ai pu vous aider à l'apprendre.

L'utilisation de regex avec des raccourcis n'est pas différente d'apprendre à faire autre chose sur votre smartphone ou votre ordinateur. Il suffit de mettre un peu de temps et de patience, et finalement, vous y arriverez.

Pour plus de guides, de tutoriels et d'actualités sur tout ce qui concerne Apple, consultez le reste de le blog AppleToolBox.

Bien [A-Z][a-z]+, je te verrai la prochaine fois !