Supposons qu'il y ait deux cordes:python regex: correspondre à une chaîne avec une seule instance d'un caractère
$1 off delicious ham.
$1 off delicious $5 ham.
En Python, puis-je avoir une expression régulière qui correspond quand il n'y a qu'un seul $ dans la chaîne? Par exemple, je veux que le RE corresponde à la première phrase, mais pas à la seconde. J'ai essayé quelque chose comme:
re.search(r"\$[0-9]+.*!(\$)","$1 off delicious $5 ham.")
..saying « match où vous voyez un $ suivi de tout, sauf pour un autre $. » Il n'y avait pas de correspondance sur l'exemple $$, mais il n'y avait pas de correspondance sur l'exemple $.
Merci d'avance!
méthode de test simple pour vérifier:
def test(r):
s = ("$1 off $5 delicious ham","$1 off any delicious ham")
for x in s:
print x
print re.search(r,x,re.I)
print ""
pourquoi ne pas utiliser la méthode '.count()' des cordes? –
Je suis en train de saboter un RE dans un outil qui ne me laisse pas ajouter de logique supplémentaire. Donc je ne peux pas faire "si count (str," $ ")> 1: passer". J'ai besoin de re pour ne pas correspondre sur une telle chaîne. – Chris