donné une entrée: et une regex: p> regex = re.compile(r'\s*(?P<command>.*?)(/[/*])?')
3 Réponses :
S'il y a plus d'une correspondance, seule la première occurrence du match sera renvoyée p>
blockQuote>
parce que Vous pouvez vérifier cette expression régulière en ligne dans REGEX101 . Vous pouvez trouver son processus et ses résultats. P> regex.search () code> trouvera la première sous-chaîne de match. Vous pouvez utiliser
regex.findall () code> dans ce cas. P>
regex.Search () code> Docs a déclaré: P>
/ [/ *] code> facultatif, il n'a aucune contrainte pour correspondre au caractère
/ code>. Donc, cela peut même faire correspondre le premier espace, il peut correspondre à n'importe quelle partie. P>
Peut-être que ce n'est pas la réponse que vous recherchez, mais cela peut aider:
('say hi ', ' comment')
dans l'exemple ci-dessus, et depuis le si vous voulez Pour réégifier une ligne sans commentaire, utilisez le suivant P> ? p
(/ [/ *])? CODE> est facultatif, la commande
" say hi /* comment"
" say hi ..."
\ s * code> peut correspondre à l'espace de tête, puis
. *? code> (Votre «commande» groupe) peut correspondre à une chaîne vide. De manière générale, un match non gourmand doit avoir quelque chose i> non-facultatif après elle, ou il ne correspond à rien du tout.