2016-08-08 8 views
3

Ich versuche, einen Ausdruck zu bauen, die den gesamten Text AUSNAHME Text mit dem Präfix übereinstimmen 'abc'UND Suffix 'def' (Text, der nur das Präfix hat OR das Suffix ist ok).Regex Ausdruck sowohl Präfix und Suffix auszuschließen

Ich habe versucht, die folgenden: ^(?!([a][b][c]])).*(?!([d][e][f])$), aber nicht Text überein, die nur eines der Kriterien hat (dh abc.xxx ausfällt, sowie xxx.pdf, obwohl sie passieren sollte)

ich verstehe die Antwort bezieht sich auf ‚Blick hinter‘, aber ich bin immer noch nicht ganz sicher, wie dieses Verhalten zu erreichen

ich habe auch versucht, die folgenden: ^(?<!([a][b][c])).*(?!([d][e][f])$), aber wieder ohne Glück

+0

Welchen Dialekt benutzt du? –

+2

'^ (?! abc. * Def $). *' –

+0

@SebastianProske Dank ... stellte sich heraus, dass ich die Dinge komplizierter machte! – Nissim

Antwort

2

Halten Sie es einfach und es in einen einzigen Look-Ahead kombiniert beiden Bedingungen zu überprüfen:

^(?!abc.*def$).* 
2

^((abc.*\.(?!def))|((?!abc).*\.def))$

Ich denke, dass es eine einfachere Lösung geben kann, aber diese wird funktionieren, wie Sie es wollten.

[a][b][c] kann auf abc vereinfacht werden, das gleiche gilt für def. Der erste Teil des Musters entspricht abc.*\. ohne def am Ende. Der zweite Teil entspricht .*\.def ohne das Präfix abc.

Hier ist eine visuelle Darstellung des Musters:

Regular expression visualization

Debuggex Demo

Verwandte Themen