PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : TCL Reguläre Ausdrücke nur Zahlen matchen


kersstin1
26.07.2004, 10:36
ich habe Zeichenketten die buchstaben u. 1 Zahl oder nur Zahlen enthalten.
die die nur zahlen enthalten sollen mit regexpr gefunden werden und leer gemacht werden, z. b. server1, db2test, ikrserver1
folgender Code löscht aber auch die Zahlen in Zeichenketten mit Buchstaben. Der Inhalt von Name wird in einer foreach schleife geändert.

set name "server1"
set name 1090571337456

if [regexp "\[0-9]*" $name ] {
puts "true"
regsub -all "\[0-9]*" $name { } name

Die 1 in server1 soll nicht gelöscht werden! Aber der Inhalt von Zeichenketten, die nur Zahlen enthalten, 2 oder mehr Zahlen.
Kann mir bitte jemand einen Hilfe geben?


thommey
01.08.2004, 10:40
Am einfachsten zu überprüfen, ob eine Variable nur aus Ziffern besteht, ist wohl mit:
string is integer

Es geht natürlich auch mit regexp, doch da regexp ohne anfang-/end-zeichen auch nach substrings sucht muss du Anfang und Ende definieren:
regexp "^\[0-9]$" $variable