1 votes

Regex: Trouvez les balises html contenant au moins 3 mots-clés

J'ai ces mots, dont au moins trois d'entre eux se trouvent dans n'importe quelle phrase en anglais.

était, où, étaient, certains, alors, que, peut, par, le, et, avec, plus de, là, est, comme, aussi, à travers, de, pendant que, juste, comme, pour, tel, si, autre, encore, veux, volonté, souhait, faire, fait, bien, avoir, avait, a, il, être, faire, dire, autres, aller, savoir, voir, penser, regarder, donner, utiliser, trouver, dire, demander, travailler, sembler, se sentir, essayer, laisser, appeler, obtenir, prendre, aussi, en, en plus, en outre, pouvait, qui, il, elle, parce que, de, votre, à vous, de leur, ne, sont, un, ces, ce, ces, mais, à, qui, ou, dehors, comment, quand, entre, son, son, ils, eux, mon, sans, peut-être, même, montrer, ne peut pas, doit, ne pourrait pas, maintenant, je suis, beaucoup, viens, propre, soi, vu, c'est, nous, aucun, autre, venir, tellement, trouvé, plus, beaucoup, tout, très, même, a fait, qui, ne fait, sur

Aussi, j'ai ces deux balises html, mais seul le contenu de la première est en anglais:

et une balise en russe:

Donc, je veux vérifier tous les fichiers html qui contiennent des balises dont le contenu est écrit en anglais. Pour cela, je dois trouver ces balises html qui contiennent au moins 3 de ces mots clés du début.

Mon regex, avec seulement quelques mots (version courte), ressemble à ceci:

RECHERCHE: (?-s)

et la version plus longue sera:

(?-s)

D'accord, le problème est que mon regex trouve également la deuxième balise, dont le contenu est écrit en russe. Je dois trouver seulement la première (en anglais)

2voto

harrymc Points 394411

Votre liste est trop grande, donc pour démontrer la technique, voici un exemple sur une petite liste de quatre mots, un deux trois quatre.

entrer la description de l'image ici

Voici une explication de la chaîne de recherche : (un|deux|trois|quatre).*(?-1).*(?-1)

  • (un|deux|trois|quatre) : Capturer l'un des mots du groupe
  • .* : Trouver n'importe quel nombre de caractères
  • (?-1) : Trouver une autre correspondance du groupe un derrière celui-ci (sous-modèle récursif)

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X