Je cherche une regex à (non) correspond à un personnage de commentaire enveloppé par des espaces blanchisseurs arbitraires
par exemple avec "#" comme caractéristique de commentaire: p>
lignes supposées être correspondre: p > lignes supposées être pas em> correspondance: p> donc, quelque chose comme une négation de l'ensemble (zéro / * blouses espaces # zéro / * blanchissaces) p>
3 Réponses :
La regex suivante correspondra aux lignes qui n'ont pas le caractère "#"
Cette regex ne capture pas les lignes de code se terminant par commentaire.
@Alexl, ce n'est pas une exigence sur la question, mais je l'ai réparé.
peut être quelque chose qui n'est pas optimisé, mais essayez ceci:
^[^#]*(?!\s*#).
Content d'être utile!
Pour vos données d'exemple, si Lookahead est pris en charge, vous pouvez utiliser un lookahead négatif pour affirmer que depuis le début de la chaîne, ce qui est à droite, ce n'est pas 0+ fois un espace blanche suivi d'un Si tel est le cas, corrigez la chaîne entière. p> qui correspondra: p> Démo REGEX101 P> P> # code >.
^ code> début de la chaîne li>
(?! code> regardé négatif
\ s * # code> Match 0+ fois a whitespace char, puis
# code> li>
ul> li>
) code> Fermer Lookahead li>
. + code> correspond à n'importe quel caractère sauf Newline 1+ fois Li>
$ code> fin de la chaîne li>
ul>
Quel est le problème avec votre propre regex?
Les deux espaces blanchisseurs ne sont pas «concoupés» dans une plage de blancheurs, de sorte que le regex ne correspond à aucune ligne non motivée.