none
String auswerten und einem StringArray zuweisen RRS feed

  • Frage

  • Hallo.

    Bin grad dabei mich in Regex einzuarbeiten. Gefällt mir soweit sehr gut, aber ich blicke noch nicht bei allem durch.

    Ich habe z.B. folgenden Inhalt in einem String:
    1:
    2:
    3:
    4:
    
      Zeit_AufProzent :=\n
          tTimeOut\n
          * INT_AufProzentsatz\n
          /100

    oder
    1:
    2:
    
      Zeit_AufProzent :=\n
          tTimeOut * INT_AufProzentsatz / 100

    oder
    1:
    2:
    
      Zeit_AufProzent :=\n // Das ist ein Kommentar
          tTimeOut * INT_AufProzentsatz / 100

    Ich würde nun gerne die Variablen-Namen, das Zuweisungszeichen sowie die Rechenzeichen auflösen (Steuerzeichen \n soll dabei entfernt werden, Kommentar, wenn vorhanden, soll ans Ende des StringArrays).

    Wie kann ich mir nun den Regex-Separator vorstellen?
    Freitag, 23. März 2018 12:16

Antworten

  • Hallo Krumnix,

    mit regex_replace kannst du "\n" Entfernen, der Match erfolgt hierbei mit "\\n".

    Der Match für deine Kommentarzeile erfolgt durch "\//.*" und kann mit "\S+" ergänzt werden, welches dir die restlichen Variablen, Zuweisungs- und Rechenzeichen aufteilt. In Kombination ergibt sich hier

    \//.*|\S+

    , was folgende Matches ergibt:

    Bei 

    "  Zeit_AufProzent :=
         tTimeOut
          * INT_AufProzentsatz
          / 100"


    "Zeit_AufProzent :=
    tTimeOut * INT_AufProzentsatz / 100"

    1. Zeit_AufProzent
    2. :=
    3. tTimeOut
    4. *
    5. INT_AufProzentsatz
    6. /
    7. 100

    Bei 

    "Zeit_AufProzent := // Das ist ein Kommentar
     tTimeOut * INT_AufProzentsatz / 100"
    1. Zeit_AufProzent
    2. :=
    3. // Das ist ein Kommentar
    4. tTimeOut
    5. *
    6. INT_AufProzentsatz
    7. /
    8. 100

    - Gruß Florian


    Montag, 26. März 2018 09:11

Alle Antworten

  • Hallo,

    ich weiß, wie man eine String in C, C++ und MFC analysieren kann, von RegEx und deinen Zeilen, die übrigens kein C/C++ Quellcode sind, hab ich keine Ahnung.

    Am besten solltest du in einem RegEx Forum fragen. Zum Beispiel: https://www.python-forum.de/

    Gruß Guido

    Montag, 26. März 2018 07:03
  • Hallo Krumnix,

    mit regex_replace kannst du "\n" Entfernen, der Match erfolgt hierbei mit "\\n".

    Der Match für deine Kommentarzeile erfolgt durch "\//.*" und kann mit "\S+" ergänzt werden, welches dir die restlichen Variablen, Zuweisungs- und Rechenzeichen aufteilt. In Kombination ergibt sich hier

    \//.*|\S+

    , was folgende Matches ergibt:

    Bei 

    "  Zeit_AufProzent :=
         tTimeOut
          * INT_AufProzentsatz
          / 100"


    "Zeit_AufProzent :=
    tTimeOut * INT_AufProzentsatz / 100"

    1. Zeit_AufProzent
    2. :=
    3. tTimeOut
    4. *
    5. INT_AufProzentsatz
    6. /
    7. 100

    Bei 

    "Zeit_AufProzent := // Das ist ein Kommentar
     tTimeOut * INT_AufProzentsatz / 100"
    1. Zeit_AufProzent
    2. :=
    3. // Das ist ein Kommentar
    4. tTimeOut
    5. *
    6. INT_AufProzentsatz
    7. /
    8. 100

    - Gruß Florian


    Montag, 26. März 2018 09:11