| << Vorheriges Thema anzeigen :: Nächstes Thema anzeigen >> |
| Autor |
Nachricht |
TingleTangleBob Neu Hier

Anmeldungsdatum: 08.03.2010 Beiträge: 2
|
Verfasst am: 08.03.2010, 15:30:48 Titel: Problem mit regexp |
|
|
Hallo,
als absoluter Anfänger habe ich eine Software übernommen und soll diese erweitern. Auf einem System läuft das auch, auf einem anderen nicht. Jemand eine Ahnung, woran das liegen könnte?
Der Code:
| Code: |
if { $itest > 8 } {
puts " Topfalt: $Topfalt"
flush stdout
}
set result [regexp {\d{4}} $Topfalt shipnr]
if { $itest > 8 } {
puts " result: $result"
puts " Topfalt: $Topfalt"
puts " shipnr: $shipnr"
flush stdout
}
|
Die erwartete Ausgabe sieht ungefähr so aus:
| Zitat: |
Topfalt: A0675AVSTEG
result: 1
Topfalt: A0675AVSTEG
shipnr: 0675
result: 1
|
Das Ergebnis ist aber:
| Zitat: |
Topfalt: C0648STM
result: 0
Topfalt: C0648STM
|
und die Fehlermeldung:
| Zitat: |
Error: can't read "shipnr": no such variable
|
|
|
| Nach oben |
|
 |
hank Top-User


Anmeldungsdatum: 10.03.2006 Beiträge: 876 Wohnort: Leipzig
|
Verfasst am: 08.03.2010, 18:40:29 Titel: |
|
|
Hallo,
welche TCL-Version ist denn installiert, wo es nicht geht?
Unter 8.0.5 ergibt "regexp {\d{4}} C0648STM" 0, unter 8.2.3 allerdings 1.
Unter 8.0.5 scheint es weder \d noch {4} zu geben. Entweder du nimmst eine andere TCL-Version oder schreibst das ganze mit Hilfe von {[0-9]+} um.
Viele Grüße
Göran |
|
| Nach oben |
|
 |
TingleTangleBob Neu Hier

Anmeldungsdatum: 08.03.2010 Beiträge: 2
|
Verfasst am: 09.03.2010, 09:01:55 Titel: |
|
|
Super,
Danke für das schnelle Work-around. Da die vier Ziffern in Folge stehen müssen, habe ich es einfach so formuliert:
| Code: |
{[0-9][0-9][0-9][0-9]}
|
lG
Martin |
|
| Nach oben |
|
 |
|