regulärer Ausdruck

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
rtx05
Beiträge: 9
Registriert: 21.06.2005 15:41:45

regulärer Ausdruck

Beitrag von rtx05 » 07.07.2006 08:41:37

Hallo,

ich möchte eine Liste von Namen parsen

1. alle Namen die mit n oder f beginnen und mit 35 oder 15 oder r5 enden

die dazugehörige regEx =

Code: Alles auswählen

(n|f).*(35|15|r5)
das funktioniert auch

2. alle Namen die NICHT mit m oder f oder n beginnen und mit 35 oder 15 oder r5 enden

die dazugehörige regEx =

Code: Alles auswählen

[^mnf].*(35|15|r5)
Leider matched dieser Ausdruck nicht; ist die Negation falsch?
Gruß
rtx05

Benutzeravatar
legolaus
Beiträge: 67
Registriert: 07.06.2006 10:14:35
Wohnort: Wetterau / Hessen

Beitrag von legolaus » 07.07.2006 09:18:31

[^mnf.*(35|15|r5)]

?

firestonez
Beiträge: 73
Registriert: 23.03.2004 11:14:19

Beitrag von firestonez » 07.07.2006 09:21:35

Code:
[^mnf].*(35|15|r5)
Ich würde mal versuchen, explizit Anfang und Ende zu definieren:

Code: Alles auswählen

^[^mnf].*(35|15|r5)$

algol
Beiträge: 25
Registriert: 24.03.2006 08:18:16

Beitrag von algol » 07.07.2006 09:25:14

Da müsste man die Worte die du parst, genauer kennen.

Aber setze mal einen Startanker:

Code: Alles auswählen

^[^mnf].*(35|15|r5)
Hintergrund: ohne Anker ist .* zu "fexibel".
Bsp: nxr5: .* matcht hier den Leersting! x passt auf "[^mnf]", r5 auf r5 und schon matcht es (gibts das Wort "matcht"... :roll: überhaupt)?

(edit: zu langsam...)

firestonez
Beiträge: 73
Registriert: 23.03.2004 11:14:19

Beitrag von firestonez » 07.07.2006 09:29:19

algol hat geschrieben:(edit: zu langsam...)
:mrgreen:

rtx05
Beiträge: 9
Registriert: 21.06.2005 15:41:45

Beitrag von rtx05 » 07.07.2006 10:28:46

danke!

Der Startanker wars!

Gruß
rtx05

firestonez
Beiträge: 73
Registriert: 23.03.2004 11:14:19

Beitrag von firestonez » 07.07.2006 10:48:16

rtx05 hat geschrieben:danke!

Der Startanker wars!

Gruß
rtx05
Du musst auch den "Endanker" setzen da sonst auch Treffer gefunden werden, die eine 35 in der Mitte haben!

Antworten