• Ich war noch nie gut in solchen sachen...vielleicht kann mir aber einer von euch helfen:

    Ich such in einem Text eine Kommazahl mit beliebig vielen Vorkomma und Nachkommastellen - wie lautet dazu der richtige Regular Expression Ausdruck?

    bsp:

    asdöfakjdflöajdföaj1.23478234234öaksjdföajsdföalsjdfö

    Ergebniss nach der suche sollte dann sein: 1.23478234234


    danke ;)

    This is Linux land...in silent nights you can hear windows machines reboot!
    ---
    Der kleine Windows-Kobolt auf meiner linken Schulter befiehlt:"Du sollst alles NIEDERBRENNEN!"

  • [0-9].*[0-9]

    sollte funktionieren...

    file:
    asdöfakjdflöajdföaj1.23478234234öaksjdföajsdföalsjdfö

    grep -e [0-9].*[0-9] -o file

    1.23478234234

    lg
    segfault

    even newton had his best ideas on an apple...

  • [0-9].*[0-9] ist nicht so geschickt - der Punkt ist bedeutet nämlich "matche jedes Zeichen". Dass die Expression hier funktioniert ist eigentlich nur Zufall - sie matcht alles, was mit einer Ziffer anfängt und mit einer Ziffer aufhört. Also auch z.B. "1huhu2".

    Ich denke, "[0-9]*\.[0-9]*" ist hier besser. Also zum aufrufen:

    Code
    grep -oe '[0-9]*\.[0-9]*' file

    -Thomas

  • Zitat von Lacce

    [0-9].*[0-9] ist nicht so geschickt - der Punkt ist bedeutet nämlich "matche jedes Zeichen". Dass die Expression hier funktioniert ist eigentlich nur Zufall - sie matcht alles, was mit einer Ziffer anfängt und mit einer Ziffer aufhört. Also auch z.B. "1huhu2".

    Ich denke, "[0-9]*\.[0-9]*" ist hier besser. Also zum aufrufen:

    Code
    grep -oe '[0-9]*\.[0-9]*' file

    -Thomas

    stimmt natuerlich ;) sorry, war eher schnell "hingefetzt" ohne viel drueber nachzudenken (erst denken dann posten :) )

    even newton had his best ideas on an apple...

  • Zitat von Lacce


    Ich denke, "[0-9]*\.[0-9]*" ist hier besser.

    Besser schon, aber kommt auf die genaue spezifikation an. Wenns wirklich beliebig viele sein koennen, stimmt die regexp schon, aber macht es sinn '.' als zahl zu matchen?

    Ich wuerd die (fuer praktische zwecke) so bauen:

    [0-9]+(\.[0-9]+)?

  • Zitat von MaxAuthority

    Besser schon, aber kommt auf die genaue spezifikation an. Wenns wirklich beliebig viele sein koennen, stimmt die regexp schon, aber macht es sinn '.' als zahl zu matchen?

    Ich wuerd die (fuer praktische zwecke) so bauen:

    [0-9]+(\.[0-9]+)?


    aaaaahhhhh danke......hatte wohl einen knoten im hirn...vor lauter java.util.regexp.....klassen!!!

    danke!!

    This is Linux land...in silent nights you can hear windows machines reboot!
    ---
    Der kleine Windows-Kobolt auf meiner linken Schulter befiehlt:"Du sollst alles NIEDERBRENNEN!"

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!