Question

Premier message, alors allez-y. J'écris un script qui effectue une recherche intelligente et le remplace dans une arborescence de fichiers. Essentiellement, le script récupère le contenu de chaque fichier dans une chaîne de mémoire tampon et effectue une correspondance avec un modèle prédéfini. Dans ce cas, le modèle est / ^ [^ \ r \ n] * (fournisseur) [^ \ r \ n] * $ / im . Le modèle doit rechercher toutes les formes de "fournisseur" insensibles à la casse. et donnez-moi toute la ligne qui a été appariée. J'ai besoin de voir toute la ligne afin de déterminer s'il convient ou non de remplacer l'événement. Ce modèle fonctionne bien pour un nombre quelconque d'occurrences de ligne distinctes dans un fichier donné.

Toutefois, s'il existe plusieurs occurrences sur une ligne donnée, le modèle ne correspond qu'à l'une de ces occurrences et ignore les autres. J'essaie de déterminer s'il me faut un deuxième motif pour effectuer des recherches supplémentaires sur la ligne correspondante ou si je peux atteindre cet objectif avec un seul motif qui réponde à toutes les exigences ci-dessus.

Juste un échantillon de ce que j'espère produire. Exemple de correspondance sur une seule ligne et sur plusieurs occurrences:

  

Révolutionner avec enthousiasme   Potentialités VENDOR sur le Web   les fournisseurs ont installé des détaillants en ligne de base.

Je voudrais produire quelque chose de similaire à ceci (encore une fois, le résultat n'est pas le problème ici, c'est si je peux le faire correspondre à un seul motif):

  

Plusieurs occurrences en ligne: ||   Révolutionner avec enthousiasme   Potentialités VENDOR sur le Web   les vendeurs ont installé des détaillants en ligne de base. ||

     

Remplacer? (y, n, q) || ... capable de vendre ... ||

     

Remplacer? (y, n, q) || ... les vendeurs de cravates insta ... ||

S'il vous plaît laissez-moi savoir si je ne suis pas clair sur mon objectif. Merci pour toute aide et réponse à cela!

Était-ce utile?

La solution

Si vous utilisez

/^[^\r\n]*(vendor)[^\r\n]*$/im

Je suggérerais d'ajouter l'opérateur g (global)

/^[^\r\n]*(vendor)[^\r\n]*$/img
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top