Zu blöd für Regex ?

  • VB.NET

Es gibt 4 Antworten in diesem Thema. Der letzte Beitrag () ist von Kangaroo.

    Zu blöd für Regex ?

    Hey Leute ... Ich habe mal wieder ein Problem ... Diesmal mit Regex !


    Ich möchte gerne das alles hier auslesen.

    Hierbei möchte ich die 54.24 Auslesen...

    PHP-Quellcode

    1. <tr>
    2. <td class="cell1">Wert</td>
    3. <td class="cell2"><table>
    4. <tbody>
    5. <tr>
    6. <td>54.24</td>
    7. <td>Währung</td>
    8. </tr>
    9. </tbody>
    10. </table>
    11. </td>


    Hierbei möchte ich die 22.25 auslesen

    PHP-Quellcode

    1. <tr class="price">
    2. <td>22.25</td>
    3. <td>Währung</td>
    4. </tr>
    5. </tbody>
    6. </table>



    Hierbei möchte ich die 65.54 Auslesen

    PHP-Quellcode

    1. <td class="cell1">In verwendung</td>
    2. <td class="cell2"><table>
    3. <tbody>
    4. <tr>
    5. <td>65.54</td>
    6. <td>Währung</td>
    7. </tr>
    8. </tbody>
    9. </table>
    10. </td>



    Hier möchte ich die 11/9/2009 auslesen

    PHP-Quellcode

    1. <td class="cell1">Herstellungsdatum</td>
    2. <td class="cell2">11/9/2009</td>


    Bei dem hier habe ich es Hinbekommen :

    PHP-Quellcode

    1. <td class="cell1">serial</td>
    2. <td class="cell2">706637659</td>


    mit dem code :

    VB.NET-Quellcode

    1. Dim Reg As New Regex("\<td class=\""cell2\""\>(?<string>(.*))\<\/td\>")


    Aber ich denke nur weil ich nur das den wert der cell2 regexe ... wie mache ich das aber wenn ich

    PHP-Quellcode

    1. <td class="cell1">serial</td>

    noch miteibeziehen möchte ?

    Oder die anderen halt ... Danke schinmal im Vorruas

    MFG Marlboro@14
    Hallo,
    Hier gab es so ein schönes Tutorial .. hast du das schon gelesen? Sufu?!
    Vorher hatte ich auch Probleme aber das hilft wenn man es gelesen hat :)

    [VB2008]vb-paradise.de/allgemeines/sou…-mit-httpwebrequest-regex

    Ansonsten, vll. Hilft dir mein Beitrag.. vb-paradise.de/programmieren/i…57-kleines-regex-problem/

    Wenn du dann nicht weiter kommst.. könnte ich dir auch helfen ... Aber es wär toll wenn du es selbst verstehst/kannst.. deswegen erstmal die Links..
    C&P Hilft irgendwann nichtmehr weiter :P
    Das Problem ist ja , das dieses class1 oder class2 mehrmals gibt ... und sich nicht eindeutig identifizieren lässt


    Wie mache ich das also bei dem kompletten quelltext ?

    VB.NET-Quellcode

    1. Dim Reg As New Regex("\<td class=\""cell2""\""\>\<\/td\>\<\tbody\>\<\tr\>\<\td\>(?<string>(.*))\<\/td\>")


    Das funktioniert nicht !

    Ist ja nicht so als wenn ich nicht schon sachen versucht habe
    Diese Pattern gibt Dir den Inhalt von 2 aufeinanderfolgenden Zellen (nur durch whitespace, Zeilensprung) getrennt wieder.

    VB.NET-Quellcode

    1. <td[^>]*>([0-9.]+)</td>[\s]*<td[^>]*>([a-zäöü]+)</td>

    wobei der erste Inhalt eine Decimal-Zahl und der zweite ein Wort-Bezeichner ist.

    Durch Anpassen von ([0-9.]+) und ([a-zäöü]+) kannst Du meiner Meinung nach alle Deine angegebenen Suchprobleme lösen.

    Folgendes wären z.B. Deine Währungsstrings

    VB.NET-Quellcode

    1. <td[^>]*>([0-9.]+)</td>[\s]*<td[^>]*>Währung</td>


    und das Deine serial

    VB.NET-Quellcode

    1. <td[^>]*>serial</td>[\s]*<td[^>]*>([0-9]+)</td>

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Kangaroo“ ()