linux-l: Problem mit Python und regulaeren Ausdruecken
Guntram Trebs
gunni at mathematik.hu-berlin.de
Di Apr 24 13:25:09 CEST 2001
Hi Fabian,
On Tue, 24 Apr 2001, Fabian Walk wrote:
> Ich bin dabei einen Dateinamenkonverter zu schreiben der alle Leer-
> zeichen durch "_" ersätzt und alle Sonderzeichen wie "| & ; ( ) < > []"
> aus dem Dateinamen entfernt, diesen in Kleinbuchstaben umwandelt und die
> Datei umbenennt.
> re.sub verwenden. Gibt es vieleicht noch eine bessere Methode als mit
> regulären Ausdrücken?
Einen anderen einfachen Algorithmus gibt es.
Ich habe allerdings keine Ahnung von python,
deshalb gibt's zur unendlichen Freude aller
Informatik-Studenten Pseudocode:
function convert_filename ( String orig ) {
String kopie[orig.length] = "";
for (int i = 0; i<orig.length; i++) {
switch( orig[i] ) {
case ' ':
case other_whitespace:
kopie = kopie + '_';
break;
case '|':
.
.
.
case: ']':
break;
default:
kopie = kopie + orig[i];
}
}
return kopie;
}
Ansonsten in php mit perl-regulären ausdrücken: (nicht getestet)
function convert_filename( $subject) {
$pattern = array();
$replacement = array();
$pattern[] = "[|&;()<>\[\]]";
$replacement[] = "";
$pattern[] = "[\\s]";
$replacement[] = "_";
return ereg_replace($pattern, $replacement, $subject);
}
Guntram
Mehr Informationen über die Mailingliste linux-l