Regex und Voodo

30/04/2009 - 11:01 von Matthias Dort | Report spam
Hallo,

ich habe wieder mal ein Regex-problem, an dem ich mir fast die Zàhne
ausbeiße. Sicher gibt es eine ganz einfache Lösung.

Folgende Testdatei sei gegeben:

(Zeilen-Nummern)
1. a
2. 1
3. 12345
4. abcde
5. gemischt1234
6. 11gemischt1234
7. gemischt1234gemischt
8. 11gemischt1234
9. ,123,asd,432
10. 123,asd,432,
11. ,123,asd,432,
12. 123,asd,432
13. kkkkkkkkkkkkà,
14. kkkkkkkkkkkk,

Erlaub sein sollen nur Zeichenketten, die [a-zA-Z0-9,] beinhalten Das
Komma darf aber nicht am Ende oder am Anfang stehen. Ebenso sollen
einstellige Werte möglich sein. Der Filter auf die obige Tabelle
angewendet darf also nur die folgenden Zeilen ergeben:

1,2,3,4,5,6,7,8,12.

Das ganze muß in einem if-Statement abbildbar sein.

Mit folgendem Ausdruck war ich nah dran, jedoch matcht der jetzt wieder
nicht auf einstellige Eingaben: "^[^,]*[,a-z1-9\b][a-z1-9]$" - Ratlos ?=8-O

Vielen Dank für einen Tipp

Gruß Matthias
 

Lesen sie die antworten

#1 Christian Brabandt
30/04/2009 - 12:55 | Warnen spam
On 2009-04-30, Matthias Dort wrote:
1. a
2. 1
3. 12345
4. abcde
5. gemischt1234
6. 11gemischt1234
7. gemischt1234gemischt
8. 11gemischt1234
9. ,123,asd,432
10. 123,asd,432,
11. ,123,asd,432,
12. 123,asd,432
13. kkkkkkkkkkkkà,
14. kkkkkkkkkkkk,

Erlaub sein sollen nur Zeichenketten, die [a-zA-Z0-9,] beinhalten Das
Komma darf aber nicht am Ende oder am Anfang stehen. Ebenso sollen
einstellige Werte möglich sein. Der Filter auf die obige Tabelle
angewendet darf also nur die folgenden Zeilen ergeben:

1,2,3,4,5,6,7,8,12.



#v+
~$ egrep -n '^([^,][a-zA-Z0-9,]+)?[^,]$' testfile
1:a
2:1
3:12345
4:abcde
5:gemischt1234
6:11gemischt1234
7:gemischt1234gemischt
8:11gemischt1234
12:123,asd,432
#v-

regards,
Christian
hundred-and-one symptoms of being an internet addict:
213. Your kids start referring to you as "that guy in front of the monitor."

Ähnliche fragen