Regulärer Ausdruck in Perl

Es gibt 27 Antworten in diesem Thema, welches 5.653 mal aufgerufen wurde. Der letzte Beitrag (29. Mai 2018 um 00:17) ist von syshack.

  • MySQL scheint wohl eine andere Syntax zu haben:

    SQL
    UPDATE TABLE_NAME SET FIELD = CONCAT('myText ',FIELD) WHERE CONDITION;

    Also für Dich:

    SQL
    UPDATE `myDB`.`myTable`
    SET `test` = CONCAT(`test`, 'blabla')
    WHERE `username` = 'Abbuzze';

    <EDIT>Dekay shoots faster ! :thumbsup:

    ___________________________________________________________
    Meine Kreationen: Bitte melde dich an, um diesen Link zu sehen. | Bitte melde dich an, um diesen Link zu sehen. | Bitte melde dich an, um diesen Link zu sehen. | Bitte melde dich an, um diesen Link zu sehen.
    | Bitte melde dich an, um diesen Link zu sehen.
    Avatar: Copyright 2017 by Saiki

  • Guude,

    so scheint es zu klappen.
    Wenn ich jetzt noch einen Zeilenumbruch vor dem neu hinzugefügten Test rein bekommen, sollte es funktionieren.

    Tschau

    Abbuzze

  • Probier mal:


    SQL
    UPDATE `myDB`.`myTable`
    SET `test` = CONCAT(`test`, '\r\nblabla')
    WHERE `username` = 'Abbuzze';

    Je nach System brauchst Du \r\n (Windows) oder nur \n (Linux, Mac)

    ___________________________________________________________
    Meine Kreationen: Bitte melde dich an, um diesen Link zu sehen. | Bitte melde dich an, um diesen Link zu sehen. | Bitte melde dich an, um diesen Link zu sehen. | Bitte melde dich an, um diesen Link zu sehen.
    | Bitte melde dich an, um diesen Link zu sehen.
    Avatar: Copyright 2017 by Saiki

  • Guude,

    mit \n hat es geklappt.
    Vielen Dank an alle.

    Tschau

    Abbuzze

  • Dann tippe ich bei meinem Code mal auf Line-Ending-Sachen: \r\n vs \n... Wenn ich bei mir testweise die Lineedings nach "\r\n" ändere, bekomme ich auch kein Resultat.

    Da hilft eine Vorbearbeitung des Strings mittels:
    teststring =~ s/\r//g;
    was einfach alle \r rauslöscht...

    Auch wenn's spät kommt: Man kann Perl auch mitteilen, was es als Zeilenumbruch zu interpretieren hat. Die Variable $/ kann z. B. auf "\n" gesetzt werden. Danach braucht man keine Extra-Behandlung mehr. Das hat dann übrigens auch den Vorteil, dass man die gesamte Datei in einem Rutsch zeilenweise in ein Array bekommen kann, und dann mappen und ggf. noch ausgeben, wenn man will:

    Perl: kurz.pl
    #!/usr/bin/perl
    use strict;
    use warnings;
    $/='\n';
    open(my $fh, '<', 'input.txt') or die;
    my @data = <$fh>;
    close $fh;
    @data = map {$_ =~ /^Subject: (.*)/ ? $1 : ()} @data;
    print "$_\n" for (@data);

    Ganz ohne While-Schleifen und Fallunterscheidungen für Fälle, die man nicht will. Hier natürlich ohne die Zahlen. Aber das Beispiel zwischen drin hatte ja auch keine mehr. Zugegeben, wenn die Datei richtig groß™ ist, passt sie vielleicht nicht ins RAM.

    12345678901234567890123456789012345678901234567890
    12345678901234567890123456789012345678901234567890
    12345678901234567890123456789012345678901234567890

  • Ist für mich nicht so gut lesbar. Das liegt halt an den verschiedenen Leveln.

    syshack: Programmierer
    7Saturn: Programmierer
    Dekay: Admin

    :tauch:

    außerdem bin ich Basic versaut für mein Leben.

  • außerdem bin ich Basic versaut für mein Leben.

    Ganz ohne Witz: Das geht mir auf Arbeit genau so. Das was du da siehst, ginge vermutlich noch etwas Code-golfiger mehr. Perl hat halt seine ganz eigenen Paradigmen, die manches wirklich super-geil zum Einzeiler werden lassen, weil Perl das eben von Haus aus mitbringt. Was nur mit der Basic-FOR-Schleifen-Denke nicht so ganz vereinbar ist. Damit geht's aber auch. Das geht mir auch heute noch so, trotz inzwischen über einem Jahr ständiger Perl-Präsenz in meiner Arbeit. =)

    12345678901234567890123456789012345678901234567890
    12345678901234567890123456789012345678901234567890
    12345678901234567890123456789012345678901234567890

  • Ist für mich nicht so gut lesbar. Das liegt halt an den verschiedenen Leveln.

    syshack: Programmierer
    7Saturn: Programmierer
    Dekay: Admin

    :tauch:

    außerdem bin ich Basic versaut für mein Leben.

    Bin eher der Business und BI Analyist. Programmiere kaum noch, leider.
    Aber Perl tue ich mir auch nicht an. Wenn schon sowas wie Python, da biste mit BASIC nicht weit entfernt davon... *huestel* :wink:

    ___________________________________________________________
    Meine Kreationen: Bitte melde dich an, um diesen Link zu sehen. | Bitte melde dich an, um diesen Link zu sehen. | Bitte melde dich an, um diesen Link zu sehen. | Bitte melde dich an, um diesen Link zu sehen.
    | Bitte melde dich an, um diesen Link zu sehen.
    Avatar: Copyright 2017 by Saiki