[BlitzMax] Erweitertes preg_replace
Übersicht

FWeinbehemals "ich"Betreff: [BlitzMax] Erweitertes preg_replace |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Da ich in letzter Zeit oft bzw. viele Dateien Umbenennen musste welche schon nach einem System benannt waren, schrieb ich mir Kurzerhand eine Funktion um das mit dem RegExp Modul von Brucey zu machen. Es wird also das Modul Bah.RegEx (Download) benötigt. Mir ist bekannt, dass es die Funktion ReplaceAll(Target:String, replaceWith:String, startPos:Int = 0) schon gibt, doch brauchte ich eine etwas mächtigere Funktion.
Die besagte Funktion unterstützt zwar das Einsetzen von zuvor gefundenen subquery aber leider nicht das Manipulieren dieser. Kurz zur Syntax meiner Funktion, anhand eines Beispiels: BlitzMax: [AUSKLAPPEN] Local Text:String = "Super cool [b]das[/b] ganze [b]hier[/b]" Der String Text sollte selbsterklärend sein hier ist der zu bearbeitende Text enthalten. Der String SearchPattern kann ein Regulärer Ausdruck nach dem allg. Standart sein. Jetzt zum String ReplacePattern hier unterscheidet sich meine Funktion von der oben Genannten. Zum einen werden Parameter über das $(Dollar)-Zeichen eingesetzt. Wobei zu beachten ist, das $0 der gesamte Match und ab 1 die SubQuery's eingesetzt werden. Wie ich am Anfang schon vermuten ließ ist es möglich den einzusetzenden String noch zu verändern. Hier gibt es drei Modifier welche dem $-Zeichen angehangen werden. Einmal das ^(Zirkumflex), welches das erste Zeichen im String großschreiben lässt. ( $^1 = <b>Das</b>) Zum anderen gibt es noch das !(Ausrufezeichen) welches den gesamten String großschreiben lässt.( $!1 = <b>DAS</b>) Zum Schluss noch eine sehr primitive Replace-Funktion,z u welcher ich auch noch ein Beispiel habe: BlitzMax: [AUSKLAPPEN] Local Text:String = "Super cool [b]das[/b] ganze [b]hier[/b]" Zwar kann nützliches Beispiel, aber es veranschlaulicht was es tut. Nach dem $-Zeichen wird eine Klammer gemacht wobei die Parameter durch Kommata getrennt werden. Der erste (im bsp. die 1) entspricht der Zahl für das SubQuery der 2te (im bsp. "hier") gibt den zu erstzenden String an und der 3te (im bsp. "NICHT") eben den String mit welche er ersetzt wird. Das sind die Funktionen die ich für das Umbenennen brauchte, hoffe jemand kann die Funktion gebrauchen. BlitzMax: [AUSKLAPPEN] Function preg_replace:String(Pattern:String, ReplaceString:String, SearchString:String) |
||
"Wenn die Menschen nur über das sprächen, was sie begreifen, dann würde es sehr still auf der Welt sein." Albert Einstein (1879-1955)
"If you live each day as if it was your last, someday you'll most certainly be right." Steve Jobs |
Lion |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
BlitzMax hat ein eigenes archiv ![]() |
||
Intel Core 2 Quad 4x2.66 ghz - 4gb ddr2 - nvidia GeForce GTX660 2gb
Intel Atom 1x1.83 ghz - 2gb ddr2 - intel GMA 3150 256mb AMD A10-5750M 4x2.5 ghz - 8 gb ddr4 - AMD R9 M290x |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group