Comment pourrais-je écrire une expression régulière qui correspond aux critères suivants?
dans une ficelle
Le caret à l'intérieur d'une classe de caractères [^] est l'opérateur de négation commun à la plupart des implémentations d'expressions régulières (Perl, .NET, Ruby, Javascript, etc.). Alors je le ferais comme ça:
[^\W\s\d]
Ou vous pouvez adopter une autre approche en n'incluant que ce que vous voulez:
[A-Za-z]
La principale différence ici est que le premier inclura des traits de soulignement. Cela, et cela montre une façon d’écrire l’expression dans les mêmes termes que vous pensez. Mais si vous inversez, vous envisagez d'inclure des caractères au lieu de les exclure, il peut parfois en résulter une expression régulière plus facile à lire.
Je ne sais pas exactement quels caractères spéciaux vous ne voulez pas. Mais j’ai écrit les deux solutions au cas où l’une te fonctionnerait mieux que l’autre.
En Perl, ce serait quelque chose comme:
$string !~ /[\d \W]/
Bien sûr, cela dépend de votre définition de "caractères spéciaux". \W
correspond à tous les caractères non-Word. Un caractère Word est un caractère alphanumérique plus le caractère espace.
La chose la plus importante à propos des expressions régulières n’est pas leur syntaxe, mais leur capacité à expliquer clairement ce que vous recherchez. C'est vraiment 90% du problème.
En outre, il est généralement préférable d'indiquer ce que vous voulez plutôt que ce que vous ne voulez pas.
Essayez ^ [^ 0-9\p {P}] $