J'essaie de ne rien retourner à partir de la première correspondance de la variable ci-dessous en utilisant l'expression suivante: p> selon les documents, < / p> doit renvoyer des valeurs uniques, mais je reçois p> code: p>
3 Réponses :
Comme le souligne le commentaire, vos exemples ne sont pas uniques, de sorte que la fonctionnalité semble correcte. Ajoutez un terme à la méthode sous code> pour supprimer les balises code> code> (puis votre commande définie supprimera les entrées en double). Ou si vous souhaitez seulement la première correspondance du Email_body CODE> Essayez peut-être simplement utiliser la méthode recherche code> dans le package REGEX. P>
Pourquoi ne pas inclure du code pour élaborer votre point? Aussi code> n'est pas une balise ici, il ne s'agit que de la partie de la chaîne et de Set code> n'est pas une commande qu'il s'agit d'une classe qui convertissent les valeurs en hayes et lorsque deux Les valeurs génèrent la même valeur de hachage qui correspond à la manière dont nous obtenons les valeurs uniques et c'est la raison pour laquelle ils sont non ordonnés.
Merci de réponse, j'ai essayé re.sub (r '= (?: \ ^ m \
)? | [\ r \ n] + code> mais rien n'a changé
Je crois ce que vous avez suggéré ci-dessus essaient de correspondre au
code> directement après la m. Ce qui suit devrait fonctionner: req (r '(m. * :) | (_ s) + | (
) ', ...) code>. Mais je préfère que la réponse du prédicat est donc en votant.
Si vous voulez que vous puissiez améliorer votre regex à Ceci :
\bMACHINE:\s*([^<]*(?:(?:\r\n?|\n)\S+)?)
Votre regex principale utilisée dans Vous pouvez également l'utiliser avec note re.finditer code> correspondances code> tags. Tout ce dont vous avez besoin est de les supprimer avec le re.sub code>: re.findall code> comme ceci: p> re.m code> est redondant et est supprimé. P>
code> Matchs correspondent
, alors \ s * code> correspond à 0+ blanchissaces, (?: / \ s * )? CODE> correspond à une séquence ovelle de / code> et 0+ WhitSpaces, et > code> correspond enfin > code>. Donc, il peut correspondre à
code>, code>,
code> et même
code>. p> p>
Ces deux valeurs ne sont évidemment pas la même, et donc elles sont i> uniques. Remarque: "unique" i> ne signifie pas "un seul" i>. Cela signifie juste " aucune répétition i>".
Dupliqué possible de Expression régulière pour arrêter au premier match
Jetez un coup d'œil à Stackoverflow.com / Questions / 2503413 / ...
Vous pouvez également supprimer tous les balises
code> code>,re.sub (r '= (?: \ ^ M)? || [\ r \ n] + ',' ', m.group (1)) code>, et
liste (défini ()) code> fera son travail. FYI: leà nouveau code> n'est plus nécessaire, il n'y a pas d'ancrages dans le motif.Merci encore Wikor, tu m'as sauvé à nouveau, ça marche !!