Je voudrais être capable de rechercher une chaîne pour différents mots, quand j'en trouve un, je veux diviser la chaîne à ce point en 3 parties (gauche, match, droite), le texte correspondant serait exclu, et le processus continuerait avec la nouvelle chaîne gauche + droite.String Find/Replace Algorithm
Maintenant, une fois toutes mes correspondances effectuées, je dois inverser le processus en réinsérant les mots correspondants (ou en les remplaçant) au moment où ils ont été supprimés. Je n'ai jamais vraiment trouvé ce que je voulais dans mes recherches, alors j'ai pensé que je demanderais une contribution ici sur SO.
Faites-moi savoir si cette question nécessite une description plus détaillée.
BTW - pour l'instant, j'ai un très mauvais algorithme qui remplace le texte correspondant par un jeton de chaîne unique, puis remplace les jetons par le texte de remplacement pour la correspondance appropriée après que toutes les correspondances ont été faites.
Tel est l'objectif:
one two three four five six
match de "trois" remplacer par foo (rappelez-vous, nous avons trouvé trois, et où nous l'avons trouvé)
one two four five six
|
three
match de "deux quatre" et l'empêcher d'être apparié par quoi que ce soit (édité pour la clarté)
one five six
|
two four
|
three
à ce stade, vous ne pouvez pas correspondre par exemple "sur e deux »
tous les matchs ont été trouvés, maintenant mis leurs remplaçants en retour (dans l'ordre inverse)
one two four five six
|
three
one two foo four five six
Quel est le point? Empêcher le remplacement du texte d'un match par un autre motif. (tous les modèles sont exécutés en même temps et dans le même ordre pour chaque chaîne traitée)
Je ne suis pas sûr que la langue compte, mais j'utilise Lua dans ce cas. Je vais essayer de reformuler, j'ai une liste de modèles que je veux trouver dans une chaîne donnée, si j'en trouve un, je veux enlever cette partie de la chaîne de sorte qu'il ne correspond pas à autre chose, mais je veux de garder une trace de l'endroit où je l'ai trouvé pour que je puisse insérer le texte de remplacement il une fois que je suis fait essayer de faire correspondre ma liste des modèles
Voici une question connexe:
Shell script - search and replace text in multiple files using a list of strings
Langue? Cadre? –
Donc, après l'algorithme est terminé, la chaîne est comme vous l'avez laissé? Pourquoi avez-vous besoin d'enlever les cordes en premier lieu? Que faites-vous * avec les résultats? Il peut y avoir une solution plus facile. S'il vous plaît poster quelle langue vous utilisez. –
Que voulez-vous dire par continuer avec gauche + droite? Supposons que le texte original soit "abcdefgh", et que vos deux mots soient "cd" et "bef", divisez-vous d'abord en "ab" - "cd" - "efgh", puis cherchez "abefgh", et trouver "bef", et diviser en "a" - "bef" - "gh" et puis continuer avec "agh", et ne trouve rien? –