0 votes

Comment trouver "l'intersection" de deux chaînes de caractères?

Question simple pour tous les experts :

Chaîne A : "J'aime les cerises, les pommes, les baies"
Chaîne B : "J'aime les cerises, les pommes, les baies, les cookies"

Je voudrais trouver le texte dans la chaîne B mais pas dans la chaîne A (l'intrus)

J'essaie de trouver -> ", cookies"

Existe-t-il un script AppleScript qui peut résoudre cela pour moi ?

1voto

OnePablo Points 1

En l'absence d'autres exemples ou critères formels pour déterminer comment la correspondance devrait être effectuée, j'ai simplement donné un exemple ici de la manière la plus simple d'obtenir la différence entre deux chaînes :

set A to "J'aime les cerises, les pommes, les baies"
set B to "J'aime les cerises, les pommes, les baies, les cookies"

set the text item delimiters to {null, A}

return text items of B as text --> ", les cookies"

Cela fonctionne si une chaîne est entièrement contenue dans l'autre, comme c'était le cas avec vos chaînes données. Si chaîne A était `"Mais j'aime les cerises, les pommes, les baies" ou "J'aime les cerises, les pommes, les baies.", la méthode ci-dessus ne fonctionnera pas.

Cela ne fonctionnera pas non plus si chaîne B contient le mot "null" là où chaîne A ne le fait pas.

0voto

wch1zpink Points 6067

Voici une autre option...

set stringA to "J'aime les cerises, les pommes, les baies"
set stringB to "J'aime les cerises, les pommes, les baies, les biscuits"
set stringACharacters to count of text items of stringA

set oddManOut to text -1 thru (stringACharacters + 1) of stringB

0voto

user3439894 Points 52496

Voici une autre méthode, tout en utilisant la commande do shell script d'AppleScript, et awk:

set strA to "J'aime les cerises, les pommes, les baies"
set strB to "J'aime les cerises, les pommes, les baies, les cookies"

do shell script "awk -F" & quoted form of strA & " '{print $2}'<<<" & quoted form of strB

Lorsqu'il est exécuté dans Script Editor, avec (Événements) (Réponses) sélectionné dans le [Journal des événements], cela donne :

tell current application
    do shell script "awk -F'J'aime les cerises, les pommes, les baies' '{print $2}'<<<'J'aime les cerises, les pommes, les baies, les cookies'"
        --> ", les cookies"
end tell

Résultat:
", les cookies"

Remarque : Le exemple de code AppleScript est juste cela et ne comprend aucune gestion d'erreur et est simplement destiné à montrer l'une des nombreuses façons d'accomplir une tâche. Il incombe toujours à l'Utilisateur d'ajouter/utiliser la gestion d'erreur appropriée selon les besoins/désirs.

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