+ Antworten
Seite 7 von 9 ErsteErste ... 4 5 6 7 8 9 LetzteLetzte
Ergebnis 91 bis 105 von 121

Thema: [Workshop] Regular Expressions

  1. #91
    TP-Newbie svenfranzisko macht alles soweit korrekt
    Registriert seit
    Jan 2006
    Beiträge
    2
    Hallo,

    dachte das hätte ich getan.

    Ich möchte vollgendes erreichen:
    In einer beliebigen Zeile soll die Zeichenfolge pDhMc gesucht werden, von dort aus soll nach links jedes Zeichen welches nicht ein Leerzeichen, ein Komma, ein Rufzeichen oder ein Minus ist bis max. zum Zeilenanfang ebenfalls gesucht werden.
    Habe die lösung allerdings bereits gefunden.

    Vielen Dank

    Gruß

    Svenfranzisko

  2. #92
    TP-Special Mod steffenk lebt für das TP und seine User steffenk lebt für das TP und seine User steffenk lebt für das TP und seine User steffenk lebt für das TP und seine User steffenk lebt für das TP und seine User steffenk lebt für das TP und seine User steffenk lebt für das TP und seine User steffenk lebt für das TP und seine User steffenk lebt für das TP und seine User Avatar von steffenk
    Registriert seit
    Feb 2005
    Ort
    Haan / NRW
    Beiträge
    12.869
    na dann lass uns auch teilhaben


    TYPO3 · MySQLDumper · dislabs
    ·
    manche Mühlen mahlen schneller ...
    "Ich habe Rücken"
    Horst Schlämmer


  3. #93
    TP-Supporter [jacky] ist auf einem guten Weg
    Registriert seit
    Dec 2005
    Beiträge
    455
    Zitat Zitat von webmichl
    Warum nicht - wenn Du vorher auch die Lösungen der Aufgaben kennst....
    k, dann stell ich hiermit mal 2 aufgaben:

    1. Ich möchte prüfen, ob eine beliebige IP in einer bestimmten IP Range vorhanden ist. Soll heißen, ich will wissen, ob z.b. eine IP in der IP Range:
    192.0-255.0-255.1 liegt, oder nicht

    2. Ich möchte mit einem eizigen preg_replace() BB-Codes für [i ]...[/i ], [u ] ...[/u ] und [b ]...[/b ] (leerzeichen mache ich hier, da die dinger sonst wieder vom forum gematcht werden ) in html code bringen. dabei sollte beachtet werden, dass ungeschlossene bbcodes nicht ersetzt werden dürfen, und dass der regexp nicht gierig ist. beispiel zu letzterem:
    [b ]...[/b ] skksk[b ]kasd[/b ]

    soll zu

    ... skksb kasd

    und nicht zu

    ... skksb kasd

    werden

  4. #94
    TP-Supporter [jacky] ist auf einem guten Weg
    Registriert seit
    Dec 2005
    Beiträge
    455
    och leute, kommt schon ...

  5. #95
    TP-Junior Digel macht alles soweit korrekt
    Registriert seit
    Jun 2006
    Beiträge
    5

    Frage zu RegEx-Problem

    Hallo, (ich bin neu hier)

    ich befasse mich nun seit kurzem mit Regulären Ausdrücken und habe folgendes Problem:

    Ich möchte Zahlen -- genauer: die Hits auf eine Homepage -- aus einer HTML-Datei matchen.

    Die HTML-Datei sieht folgendermaßen aus:

    Code:
    </TR>
    <TR   BGCOLOR="FFFFFF">
    <TD  ALIGN ="LEFT" >
        <FONT SIZE=2 FACE="Arial" COLOR="000000"><B>Anzahl der Hits auf Homepage</B></FONT></TD>
    <TD  ALIGN ="LEFT" >
        <FONT SIZE=2 FACE="Arial" COLOR="000000">35,738</FONT></TD>
    </TR>
    Den Wert 35,738 möchte ich matchen und später in 35.738 umwandeln und in eine Textdatei schreiben.

    Das ist aber erst mal Nebensache, es geht vorerst nur um den Match.

    Die Hits variieren natürlich und haben folgende Form:
    • 0 Hits
    • 11 Hits
    • 222 Hits
    • 3,333 Hits
    • 44,444 Hits
    • 555,555 Hits
    • 6,666,666 Hits

    Ich hab folgendes festgestellt:
    • der kleinste Wert ist 0
    • bei mehr als drei Ziffern wird ein Komma als 1.000er-Trennzeichen gesetzt
    • die Zahl kann endlich groß werden
    • aufgrund der HTML-Tags ist der Wert immer von > und < umschlossen, was die Suche erleichtert

    Mein Ansatz ist folgender:

    Code:
    [:digit:]{1,2,3}+
    Die letzten drei Stellen des Wertes. Kann Werte von 0 (muss mindestens vorkommen) bis 999 (maximal) annehmen.

    Wie baue ich das Komma/Trennzeichen mit ein? Und dann darf ja der Wert immer um jemals 1-3 Ziffern erweitert werden, unter Beachtung der Trennung der Blöcke durch ein Komma.

    Neuer Ansatz:

    Code:
    [,?[:digit:]{1,2,3}]*
    Geändert von Digel (20.06.2006 um 13:03 Uhr)

  6. #96
    TP-Junior Barney macht alles soweit korrekt
    Registriert seit
    Jun 2006
    Beiträge
    8
    Hallo Digel,

    wie wäre es mit sowas hier:

    \>[^\d,]*([\d,]+)[^\d,]*\<

    Gruß

  7. #97
    TP-Junior Digel macht alles soweit korrekt
    Registriert seit
    Jun 2006
    Beiträge
    5
    Zitat Zitat von Barney
    Hallo Digel,

    wie wäre es mit sowas hier:

    \>[^\d,]*([\d,]+)[^\d,]*\<

    Gruß
    Meine eben verbesserte Version sieht folgendermaßen aus:

    Code:
    >[,?[:digit:]{1,2,3}]*<
    Wenn ich deinen RegEx richtig verstehe -- habe ihn mit Visual REGEX 3.0 gestestet --, dann legt er die Zahl in ein Subpattern von Hits ab, oder?

  8. #98
    TP-Junior Barney macht alles soweit korrekt
    Registriert seit
    Jun 2006
    Beiträge
    8
    Zitat Zitat von Digel
    Wenn ich deinen RegEx richtig verstehe -- habe ihn mit Visual REGEX 3.0 gestestet --, dann legt er die Zahl in ein Subpattern von Hits ab, oder?
    Jop, richtig.

    Gruß

  9. #99
    TP-Junior Digel macht alles soweit korrekt
    Registriert seit
    Jun 2006
    Beiträge
    5
    Zitat Zitat von Barney
    Jop, richtig.

    Gruß
    Hmmm, weiß nicht, ob ich das so gebrauchen kann, da es im (beigefügten) HTML-Code ja anders ist. Da steht Anzahl der Hits auf Homepage ja weit vor dem Wert. Das andere war ja nur zur Verdeutlichung der Formatierung.

    Na ja, ich probier mal weiter ...

  10. #100
    TP-Junior Digel macht alles soweit korrekt
    Registriert seit
    Jun 2006
    Beiträge
    5
    Hmmm, mit

    Code:
    \>([,?[:digit:]{1,2,3}]*)\<
    matche ich wie folgt:

    Code:
    <TD  ALIGN ="LEFT" >
        <FONT SIZE=2 FACE="Arial" COLOR="000000"><B>Anzahl der Hits auf Homepage</B></FONT></TD>
    <TD  ALIGN ="LEFT" >
        <FONT SIZE=2 FACE="Arial" COLOR="000000">35,738</FONT></TD>
    Die Tag-Zeichen in rot, der Wert in blau.

    Wenn ich das richtig sehe, ist der blaue Match ein Subpattern. Nun möchte ich folgendes erreichen. Er soll nur auf -- in diesem Fall -- die 35,738 matchen, wenn davor Anzahl der Hits auf Homepage steht. Dann soll er Anzahl der Hits auf Homepage: 35,738 in hits.txt schreiben.

    Damit komme ich noch nicht zurecht.

    Problem für mich also: Wie verkette -- verknüpfe/verbinde? -- ich

    Code:
    /Anzahl der Hits auf Homepage/
    mit

    Code:
    >([,?[:digit:]{1,2,3}]*)\<
    ?

    Realisiere ich das mit einem Positive Lookahead, dass vor dem Wert Anzahl der Hits auf Homepage stehen muss?

    Folgender RegEx soll den Wert nur ausspucken, wenn die Zeichen > und < davor bzw. dahinter stehen.

    Code:
    (?<=\>)([,?[:digit:]{1,2,3}]*)(?=\<)
    Aber irgendwie funktioniert das nicht.

    Wenn ich mit sed arbeite ...

    Ich möchte einfach nur meine Matches in eine andere Datei schreiben. Zum Beispiel alle Zahlen aus einem Text.

    /[:digit:]/

    Und dann? Irgendwas mit "eingabe.txt > ausgabe.txt"?
    Geändert von Digel (21.06.2006 um 18:23 Uhr)

  11. #101
    TP-Junior Digel macht alles soweit korrekt
    Registriert seit
    Jun 2006
    Beiträge
    5
    Mein RegEx sieht jetzt so aus:

    Code:
    [\d{1,3},?]*[[:digit:]]{1,3}(?=\<)|[[:digit:]]{1,3}(?=\<)
    Ich möchte nun mithilfe von sed, dass das Muster durch z. B. Bla, bla, bla ersetzt wird.

    Code:
    s/[\d{1,3},?]*[[:digit:]]{1,3}(?=\<)|[[:digit:]]{1,3}(?=\<)/Bla, bla, bla/g
    Funktioniert aber nicht.

  12. #102
    TP-Junior HeartTen macht alles soweit korrekt
    Registriert seit
    Oct 2007
    Beiträge
    5
    doppelpost.. sry

  13. #103
    TP-Junior HeartTen macht alles soweit korrekt
    Registriert seit
    Oct 2007
    Beiträge
    5
    Dieseregulären AUsdrücke sind ja echt der Hit. In jedem Program was mit Stringmanipulation zu tun hat und wo es sinnvoll ist setze ich sie ein. Da ich nicht nur mit Blumen kommen möchte hier eine kleine Frage:

    ".*" Kann recht nützlich sein, keine frage. Aber manchmal ist es eben im Weg.

    Ein Beispiel:
    Mein String:
    Code:
    "<span class="editsection">[<a href="index.php/component/option,com_staticxt/&Itemid=28staticfile,~w~index.php/title,55/amp;action,edit/amp;section,5" title="Abschnitt bearbei">Bearbeiten</a>]</span>"
    So ich würde jetzt gerne den Bereiche zwischen den "[" und "]" finden. Dazu benutze ich folgenden RegEx:
    Code:
    \[.*(\]{1})
    Leider sucht dieser Ausdruck bis zum letzten "]" den es im String gibt und nicht zum zu dem zuerst aufkommenden. Ich nehme an dies ist so weil ".*" auch für zwischendurch vorkommende "]" gilt. Ich will den String aber nur bis zum ersten "]" haben. wie gehe ich da am besten vor?

  14. #104
    TP-Specialist phpBuddy ist einer der Eckpfeiler des TP - ohne ihn geht nichts phpBuddy ist einer der Eckpfeiler des TP - ohne ihn geht nichts phpBuddy ist einer der Eckpfeiler des TP - ohne ihn geht nichts phpBuddy ist einer der Eckpfeiler des TP - ohne ihn geht nichts phpBuddy ist einer der Eckpfeiler des TP - ohne ihn geht nichts phpBuddy ist einer der Eckpfeiler des TP - ohne ihn geht nichts phpBuddy ist einer der Eckpfeiler des TP - ohne ihn geht nichts phpBuddy ist einer der Eckpfeiler des TP - ohne ihn geht nichts phpBuddy ist einer der Eckpfeiler des TP - ohne ihn geht nichts phpBuddy ist einer der Eckpfeiler des TP - ohne ihn geht nichts phpBuddy ist einer der Eckpfeiler des TP - ohne ihn geht nichts Avatar von phpBuddy
    Registriert seit
    Aug 2004
    Ort
    Kaiserslautern
    Beiträge
    4.678
    Hi HeartTen,

    zunächst mal preg_match lesen und verstehen. Als Suchmuster sollte ein
    Code:
    "/[(.*)]/"
    reichen.

  15. #105
    TP-Junior HeartTen macht alles soweit korrekt
    Registriert seit
    Oct 2007
    Beiträge
    5
    Hmm, also eins erstmal vorweg: ich programmiere mit Java.

    Der Reguläre Ausdruck
    Code:
    /[(.*)]/
    Findet meines wissens alles was:
    -Mit einem "/" beginnt und mit einem "/" endet.
    -Dazwischen darf eins der Zeichen "." und "*" stehen.

    Die eckigen Klammern geben doch an welches Zeichen auftreten darf.

    Meine Anforderungen sind aber..
    Finde einen String der:
    -Mit "[" anfängt und mit dem ersten gefundenen "]" aufhört

    Bei
    Code:
    blabla[b123]b666]bu
    dürfte er nur folgendes ausspucken:
    Code:
    [b123]
    und nicht:
    Code:
    [b123]b666]

+ Antworten
Seite 7 von 9 ErsteErste ... 4 5 6 7 8 9 LetzteLetzte

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

     

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51