280 votes

Expression régulière pour une chaîne qui ne commence pas par une séquence

Je traite un tas de tableaux en utilisant ce programme mais je dois ignorer ceux qui commencent par l'étiquette "tbd_". Jusqu'à présent, j'ai quelque chose comme [^tbd_] mais cela ne correspond pas à ces caractères.

0 votes

Comment fonctionne SchemaSpy ? Vous lui passez une liste de noms de tables ou vous lui passez une expression rationnelle et il s'occupe de la correspondance ?

0 votes

Je passe une regex (c'est le flag -i) et elle importe les correspondances, ou du moins c'est ce qu'elle dit en tout cas =)

5 votes

@echoblaze : Si tu traites du XML, pourquoi n'utilises-tu pas un analyseur XML ? Ce serait beaucoup plus facile que d'utiliser des expressions régulières.

446voto

Gumbo Points 279147

Vous pourriez utiliser un anticipation négative l'affirmation :

^(?!tbd_).+

Ou une affirmation de regard négatif :

(^.{1,3}$|^.{4}(?<!tbd_).*)

Ou tout simplement les jeux de caractères et les alternances :

^([^t]|t($|[^b]|b($|[^d]|d($|[^_])))).*

10 votes

Est-ce que cela est limité à des moteurs regex particuliers ?

1 votes

Je demande seulement parce que la deuxième semble toujours correspondre à tbd_ dans mon test. La première est pourtant excellente.

6 votes

Jetez un coup d'œil à la comparaison des saveurs de regular-expressions.info : expressions-régulières.info/refflavors.html

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X