Prty::String - Operationen auf Zeichenketten
Prty::Object
$str = $class->autoDecode($str);
Analysiere Zeichenkette $str hinsichtlich ihres Character-Encodings und dekodiere sie entsprechend. Unterschieden werden:
ASCII
UTF-8
UTF-16/32 mit BOM
ISO-8859-1
Weitere Encodings werden nicht erkannt und als ISO-8859-1 angesehen.
$str2 = $class->indent($str,$indentStr,@opt); $class->indent(\$str,$indentStr,@opt);
Rücke den Text $str um Zeichenkette $indentStr ein und liefere das Resultat zurück.
Die Einrück-Zeichenkette $indentStr wird jeder Zeile von $str hinzugefügt, außer Leerzeilen.
Rücke auch Leerzeilen ein. Per Default werden nur Zeilen mit wenigstens einem Zeichen eingerückt.
Diese Option ist nützlich, wenn die Funktion zum Auskommentieren genutzt werden soll.
Entferne Newlines am Anfang und Whitespace am Ende. Per Default geschieht dies nicht.
Texteinrückung um vier Leerzeichen
$class->indent($txt,' ' x 4); |Dies ist | Dies ist |ein Test- - wird zu -> | ein Test- |Text. | Text.
$n = $class->determineIndentation($str);
Ermittele die Einrücktiefe des Textes $str und liefere diese zurück. Die Einrücktiefe ist der größte gemeinsame Teiler aller Zeilen-Einrückungen. Beispiel:
|Dies | ist | ein | Test
Einrücktiefe ist 4.
WICHTIG: Für die Einrückung zählen nur Leerzeichen, keine Tabs!
$str = $class->reduceIndentation($n,$str); $class->reduceIndentation($n,\$str);
Reduziere die Einrücktiefe des Textes $str auf Tiefe $n.
Text:
Reduktion auf Einrücktiefe 2:
Prty::String->reduceIndentation(2,$str);
Resultat:
$str = $class->removeIndentation($str,@opt); # [1] $class->removeIndentation(\$str,@opt); # [2]
[1] Entferne Text-Einrückung aus Zeichenkette $str und liefere das Resultat zurück.
[2] Wird eine Referenz auf $str übergeben, wird die Zeichenkette "in place" manipuliert und nichts zurückgegeben.
NEWLINEs am Anfang werden entfernt.
Whitespace (SPACEs, TABs, NEWLINEs) am Ende wird entfernt. Das Resultat endet also grundsätzlich nicht mit einem NEWLINE.
Die Methode kehrt zurück, wenn $str anschließend nicht mit wenigstens einem Whitespace-Zeichen beginnt, denn dann existiert keine Einrückung, die zu entfernen wäre.
Die Einrückung von $str ist die längste Folge von SPACEs und TABs, die allen Zeilen von $str gemeinsam ist, ausgenommen Leerzeilen. Diese Einrückung wird am Anfang aller Zeilen von $str entfernt.
Eine Leerzeile ist eine Zeile, die nur aus Whitespace besteht.
Nach dem Entfernen aller NEWLINEs am Ende füge ein NEWLINE hinzu.
Einrückung entfernen, Leerzeile übergehen:
| | Dies ist | <- Leerzeile ohne Einrückung | ein Test- | Text. |
wird zu
|Dies ist | |ein Test- |Text.
Tiefere Einrückung bleibt bestehen:
| | Dies ist | ein Test- | Text. |
| Dies ist |ein Test- |Text.
$str = $class->removeIndentationNl($str,@opt); # [1] $class->removeIndentationNl(\$str,@opt); # [2]
$newCode = $this->removeComments($code,$start); $newCode = $this->removeComments($code,$start,$stop);
Entferne alle Kommentare aus Quelltext $code und liefere das Resultat zurück. Die Kommentarzeichen werden durch die Parameter $start und $stop definiert. Siehe Abschnitt Examples.
Die Methode entfernt nicht nur die Kommentare selbst, sondern auch nachfolgenden oder vorausgehenden Whitespace, so dass kein überflüssiger Leerraum entsteht.
Im Falle von einzeiligen Kommentaren (d.h. nur $start ist definiert), wird vorausgesetzt, dass dem Kommentarzeichen (der Kommentar-Zeichenkette) im Quelltext zusätzlich ein Leerzeichen oder Tab vorausgeht, sofern es nicht am Anfang der Zeile steht. D.h.
my $ind = ' ' x 4; # Einrückung ^ ^ hier müssen Leerzeichen (oder Tabs) stehen my $ind = ' ' x 4;# Einrückung ^ Wird nicht erkannt! my $ind = ' ' x 4; #Einrückung ^ Wird nicht erkannt!
Im Falle von mehrzeiligen Kommentaren ($start und $stop sind definiert) ist dies das vorausgehende Leereichen nicht nötig.
HTML, XML:
$code = Prty::String->removeComments($code,'<!--','-->');
C, Java, CSS:
$code = Prty::String->removeComments($code,'/*','*/');
C++, JavaScript:
$code = Prty::String->removeComments($code,'//');
Shell, Perl, Python, Ruby, ...:
$code = Prty::String->removeComments($code,'#');
SQL:
$code = Prty::String->removeComments($code,'--');
1.102
Frank Seitz, http://fseitz.de/
Copyright (C) 2016 Frank Seitz
This code is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
To install Prty, copy and paste the appropriate command in to your terminal.
cpanm
cpanm Prty
CPAN shell
perl -MCPAN -e shell install Prty
For more information on module installation, please visit the detailed CPAN module installation guide.