Announcement

Collapse
No announcement yet.

Zeichen in String entfernen (mit Bedingung)

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • #16
    Ist zwar etwas OT, aber weil es mich so verwundert hat, habe ich mal ein paar einschlägige Programme mit dem regulären Ausdruck beglückt und für mich erstaunliche Abweichungen erhalten:

    Ausgang: abcde2

    Austausch mit s/\([a-z]*\)/X\1Y/g

    vim 7.3 (auch im vi-Kompatibilitätsmodus) (mein Lieblingseditor ;-)

    XabcdeY2

    Vi Version 1.79 (10/23/96) The CSRG, University of California, Berkeley.

    XabcdeY2XY

    Vi: HP Version $ B.11.11_LR Oct 27 2000 00:57:16

    Line overflow in substitute (!!!!)

    Sed unter Windows:

    >echo abcde2|sed "s/\([a-z]*\)/X\1Y/g"
    XYbcdeYXY2XY (Hier ist das a verschwunden)

    >sed --version

    GNU sed version 3.02

    Unter Debian Linux:

    :~$ echo abcde2|sed "s/\([a-z]*\)/X\1Y/g"
    XabcdeY2XY

    :~$ sed --version

    GNU sed version 4.1.2

    Unter HP-UX Rel. 11i

    $ echo abcde2|sed "s/\([a-z]*\)/X\1Y/g"
    XabcdeYXY2XY (Das ist die Oracle-Version)

    Und ich hätte gedacht, nur was der Vim da macht, ist richtig. Aber da scheinen die Meinungen der Entwickler weit auseinanderzugehen

    Ralf

    Comment


    • #17
      Perl ist für mich der Prüfstein - macht es auch so wie ORACLE
      perl, v5.6.0 built for MSWin32-x86:

      >perl -e "$sample='abcde2'; $sample=~s/([a-z]*)/X\1Y/g; print $sample"
      XabcdeYXY2XY

      Comment


      • #18
        Originally posted by jum View Post
        Perl ist für mich der Prüfstein - macht es auch so wie ORACLE
        perl, v5.6.0 built for MSWin32-x86:
        Na, ja. vi und sed gab's eher Larry Wall ist ja von den Unix-Werkzeugen inspiriert worden.

        Aber egal. Der 2. gefundene Ausdruck (das XY vor der 2) ist mir trotzdem äußerst suspekt. Erst holt er greedy alles, um dann zu meinen: "Ach ja, nichts ist ja auch noch was!". Dann erscheint es mir fast logischer, wie der HP-vi einen Überlauf zu bekommen, weil nach dem Nichts ja immer wieder ein Nichts kommt.

        Aber vielleicht liest das hier jemand, der tief in der theoretischen Grundlagen der regulären Ausdrücke steht und uns das mal erklären kann.

        Ralf

        Comment

        Working...
        X