16 votes

Utilisation des expressions régulières dans les champs de recherche de macOS

Est-ce que quelqu'un sait où je peux trouver la documentation décrivant les capacités d'analyse des expressions régulières des champs de recherche macOS?

Ce que je veux dire, c'est que j'aimerais en apprendre davantage sur les règles de syntaxe regex autorisées et analysées par le champ de recherche. Par exemple, ce que je ne savais pas jusqu'à aujourd'hui, c'est que dans Aperçu macOS (ou toute autre application avec un champ de recherche standard, je suppose), nous pouvons utiliser une entrée comme celle-ci :

"\s" AND "an" AND "\s"

Cela fonctionne et suggère que les champs de recherche interprètent plus d'expressions régulières que ce que nous savons, et c'est ce que je veux lire/découvrir. L'exemple ci-dessus recherche "an" avec un caractère espace blanc avant et après \s dans un document ouvert.

J'aimerais en savoir plus sur ces règles de regroupement et les caractères regex d'enrobage/échappement pour qu'ils soient correctement analysés. Ce format d'entrée s'applique-t-il également aux champs de recherche systemwide de n'importe quelle application?

Je ne trouve aucune documentation décrivant ces fonctionnalités et j'ai trouvé seulement ceci sur la bibliothèque de developer.apple.com à la place.

Vous pouvez voir ci-dessous un exemple du comportement de recherche par défaut pour le mot "an" dans un document PDF, qui montre toutes les occurrences de "an" dans les résultats, que vous mettiez ou non un espace avant le mot "an", donc votre entrée est " an "

insérer la description de l'image ici

Lorsque nous mettons "\s" AND "an" AND "\s" dans le champ de recherche, nous obtenons le résultat de recherche souhaité

comportement du champ de recherche avec saisie regex

Cela fait une énorme différence pour les recherches contenant des mots communs!

En bref: J'aimerais en savoir plus sur la fonctionnalité que vous voyez ci-dessus. Où puis-je trouver une quelconque documentation (officielle) à ce sujet?

Les réponses fournies (jusqu'à présent) ne répondent pas à ma question, merci pour elles cependant - rassembler plus d'informations connexes est bénéfique.

0 votes

Ce lien vous sera-t-il utile ?

0 votes

Salut Denis, merci pour le lien - mais c'est plus ou moins le manuel de regex posix ;-) et si vous regardez attentivement mon exemple ci-dessus - ce n'est pas du regex posix - puisque la syntaxe commune ne fonctionne pas et c'est pourquoi la question est posée ici. Je ne suis pas sûr que des mots comme AND OR soient dans le regex posix (corrigez-moi si je me trompe) de toute façon. Cela étant dit, je ne trouve pas les spécificités de la syntaxe pour ce type de champ de recherche. C'est (probablement) une instance de developer.apple.com/reference/appkit/nssearchfield#overview (devinez) mais je ne peux pas trouver les détails spécifiques du regex.

0 votes

Êtes-vous sûr que nous parlons de regex ici? J'ai essayé votre exemple dans Aperçu, ainsi que quelques variations de regex, mais aucune d'entre elles ne semblait se comporter comme une expression régulière propre. Cela ne répond pas à votre question, mais pourrait aider à chercher au bon endroit.

4voto

Demian Turner Points 809

Je ne sais pas si vous l'avez déjà découvert mais il vous suffit de cliquer sur la loupe dans le champ de recherche, elle a une petite flèche pointant vers le bas qui est l'indice, voir cette capture d'écran:

entrez la description de l'image ici

Après avoir cliqué, choisissez Insérer Motif et vous obtenez une gamme d'options:

Il s'agit essentiellement d'expressions régulières conviviales, c'est-à-dire que vous obtenez des jetons que vous pouvez facilement organiser en de puissants modèles de recherche.

entrez la description de l'image ici

L'exemple dans la capture d'écran est TextEdit mais cette option ne semble pas être disponible dans Aperçu.

1 votes

Salut- merci pour la longue réponse, MAIS ceci est TextEdit que vous montrez... pas la fenêtre de recherche par défaut du système comme celle de l'option Aperçu, donc ce n'est pas la réponse que je cherche. La fenêtre de recherche à laquelle je fais référence est (très probablement) une instance de developer.apple.com/reference/appkit/nssearchfield#overview

1voto

gaspanic Points 163

Cet article de support d'Apple sur la façon de Réduire les résultats de recherche sur Mac est la documentation la plus détaillée que j'ai pu trouver sur les recherches dans Finder. Bien que l'auteur principal pose essentiellement des questions sur les recherches d'expressions régulières dans Aperçu, le titre de la question m'a amené ici à la recherche des mêmes informations pour les recherches dans Finder.

La dernière section sur les opérateurs booléens (Rechercher en utilisant AND, OR et NOT) est également pertinente pour Aperçu, bien que leur utilité pour la recherche de texte soit assez discutable. Les expressions régulières ne sont pas mentionnées, je suppose donc qu'elles ne sont pas prises en charge dans les champs de recherche de macOS.

0 votes

Je suis tellement heureux qu'Apple mette à jour la documentation sur Spotlight. Avoir deux langues de recherche incluses le rend parfois difficile à utiliser.

1voto

Ted Wrigley Points 725

Ce ne sont pas des expressions régulières, j'ai bien peur que vous vous soyez trompé. Dans la plupart des applications de document d'Apple, il y a une distinction entre rechercher "..." (placé entre guillemets) et ... (saisi sans guillemets). Le premier cas recherche le texte inclus en tant que mot, le deuxième cherche le texte sans tenir compte des limites des mots.

Donc, quand nous saisissons :

"\s" ET "an" ET "\s"

le parseur recherche le mot littéral s (en ignorant le backslash), puis le mot an puis un autre mot littéral s. Comme il est extrêmement improbable de trouver 's' comme un mot indépendant, le résultat est exactement le même que si nous avions simplement saisi :

"an"

mais différent de ce qui se passe si nous saisissons :

an

C'est déroutant, je sais...

0 votes

En fait, \s n'est pas censé être un caractère de contrôle. Comme je l'ai également écrit dans un commentaire à la question des OPs, "\s" recherche le mot s, en ignorant complètement le caractère d'arrière-slash.

0 votes

@gaspanic: Ah, cela a du sens; merci. Je vais modifier cela.

0 votes

Gentelmen, Je pense que vous avez raison ici; Je pourrais m'être confondu en pensant que c'est en fait RE - MAIS - avez-vous effectué des tests récents dans macOS (BigSur/Catalina)?

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X