2012-11-03 5 views
0

Dans l'exemple de chaîne "a f e $s $a", je souhaite faire correspondre tous les caractères sans caractère "$" de prélecture.Comment exclure un caractère dans un motif?

J'ai essayé d'utiliser un look-ahead négatif:

"(?!\\$)[a-z]" 

Mais elle correspond aussi $s et $a. Qu'est ce que je fais mal ?

Répondre

1

C'est une préanalyse affirmation, ce qui signifie qu'elle correspondra à une lettre qui n'est pas un signe de dollar, c'est-à-dire, tous :)

Vous avez besoin d'un lookbehind:

"(?<!\\$)[a-z]" 
1

Utilisez lookbehind négatif à savoir (?<!\\$)

"(?<!\\$)[a-z]" 

que vous utilisiez préanalyse négatif à savoir (?!\\$)

0

La syntaxe correcte pour un lookbehind négatif est (?<!...), et non (?!...), car cela est négatif.

Utilisation motif

(?<!\\$)[a-z] 
Questions connexes