J'essaie de faire correspondre les mots d'une phrase excluant ceux commencent par Le motif d'origine qui n'exclut pas les mots commençant par @ code>.
@ code> est le Suivant: p>
>>> token_pattern = '(?u)\\b^(?!@)\\w\\w+\\b'
>>> re.search(token_pattern, "#mutt")
>>> re.search(token_pattern, "@mutt")
>>> re.search(token_pattern, "mutt")
<re.Match object; span=(0, 4), match='mutt'>
>>> re.search(token_pattern, "_mutt")
<re.Match object; span=(0, 5), match='_mutt'>
3 Réponses :
Je crois que vous recherchez le suivant à la place:
token_pattern = r'(?u)\b(?<!@)\w\w+\b'
Wow! Pourriez-vous s'il vous plaît expliquer un peu comment ça marche?
essayez-vous de supprimer le caractère ou d'exclure le mot entier?
<re.Match object; span=(0, 4), match='mutt'> <re.Match object; span=(0, 5), match='#mutt'> <re.Match object; span=(0, 0), match=''> <re.Match object; span=(0, 5), match='%mutt'> <re.Match object; span=(0, 5), match='^mutt'>
Une autre option consiste à faire correspondre une seule caractéristique de mots et affirmer ce qui se trouve à gauche n'est pas un Si tel est le cas, faites correspondre 1 caractères de mots et utilisez des limites de mots au début et à la fin du motif. p> in pièces p> < ul>
Démo Regex P> P> @ code>.
(? u) code> Inline Flag for Unicode (ou utilisez
re.u code>) li>
\ b code> limite de mot li>
\ w code> correspond à un mot char li>
(? regardant négatif, affirmer ce qui est directement à gauche n'est pas
@ \ w code> match @ et un mot unique Char LI>
ul> li>
) code> Fermer LookeBehind LI>
\ w + code> Match 1+ Word caractères LI>
\ b code> limite de mot li>
ul>