2009-05-22 16 views
128

Sto elaborando un gruppo di tabelle utilizzando this program, ma ho bisogno di ignorare quelle che iniziano con l'etichetta "tbd_". Finora ho qualcosa come [^ tbd_] ma che semplicemente non corrisponde a quei personaggi.Espressione regolare per una stringa che non inizia con una sequenza

+0

Come funziona SchemaSpy? Stai passando un elenco di nomi di tabelle o stai passando una regex e sta facendo la corrispondenza? –

+0

Sto passando una regex (è il flag -i) e importerà le corrispondenze, o almeno così dice =) – echoblaze

+3

@echoblaze: Se stai elaborando XML, perché non usi un XML parser? Sarebbe molto più facile che usare le espressioni regolari. – Gumbo

risposta

240

È possibile utilizzare un look-ahead negativo affermazione:

^(?!tbd_).+ 

O un negativo look-dietro affermazione:

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

o semplicemente vecchi set di caratteri e alternanze:

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

È limitato a particolari motori regex? –

+1

Chiedo solo perché il secondo sembra ancora corrispondere a tbd_ nel mio test. Il primo è grande però. –

+3

Dai uno sguardo al confronto sapore regolare-expressions.info: http://www.regular-expressions.info/refflavors.html – Gumbo

Problemi correlati