Français
Source/ Codesnippets

Multimatch

 

Michael
W.
là je encore sur MatchPos et MatchLen gestolpert suis, clou je qui Mehrfach-cherche avec RegEx la fois ici à...
KompilierenMarqueSéparation
Proc MultiMatch$

    Parameters Maske$,Text$,StartPos&,MaxFundstellen&
    Declare found$[], idx&, old%, TLen&, savePos&, saveLen&, saveTxt$
    old% = Set("RegEx",1)
    idx& = 0
    Case StartPos& < 0 : StartPos& = 0
    Case MaxFundstellen& < 0 : MaxFundstellen& = 0
    TLen& = Len(Text$)

    While StartPos& < TLen&

        If InStr(Maske$, Text$, StartPos&) <> 0

            savePos& = %MatchPos
            saveLen& = %MatchLen
            saveTxt$ = $Match
            Inc StartPos&, savePos& + saveLen&
            found$[idx&] = saveTxt$
            Inc idx&
            Case (MaxFundstellen& <> 0) and (idx& >= MaxFundstellen&) : BREAK

        Else

            BREAK

        EndIf

    EndWhile

    Set("RegEx",old%)
    Return found$[]

EndProc

Proc MultiMatch2$

    Parameters Maske$,Text$,StartPos&,MaxFundstellen&
    Declare found$[], idx&, old%, TLen&, savePos&, saveLen&, saveTxt$
    old% = Set("RegEx",1)
    idx& = 0
    Case StartPos& < 0 : StartPos& = 0
    Case MaxFundstellen& < 0 : MaxFundstellen& = 0
    TLen& = Len(Text$)

    While StartPos& < TLen&

        If InStr(Maske$, Text$, StartPos&) <> 0

            savePos& = %MatchPos
            saveLen& = %MatchLen
            saveTxt$ = $Match
            found$[idx&] = Str$((StartPos&+savePos&)) + "|" + Str$(saveLen&) + "|" + saveTxt$
            Inc StartPos&, savePos& + saveLen&
            Inc idx&
            Case (MaxFundstellen& <> 0) and (idx& >= MaxFundstellen&) : BREAK

        Else

            BREAK

        EndIf

    EndWhile

    Set("RegEx",old%)
    Return found$[]

EndProc

Cls
Declare p%, gefunden$[], mask$,testfeld$
' Findet auch Uhrzeiten mit einstelliger Stundenzahl.
p% = 6' Startposition (die ersten 6 Zeichen sind Jahreszahl)
Print "Und nun alle Uhrzeiten : "
mask$ = "[0-9]{1,2}:[0-9]{2}"
testfeld$ = "201309,10,10:22,21:34,12:09,1:25"
gefunden$[] = MultiMatch$(mask$, testfeld$, p%, 0)

WhileLoop 0,SizeOf(gefunden$[])-1

    Case &Loop : Print ",";
    Print gefunden$[&Loop];

EndWhile

Print ""
gefunden$[] = MultiMatch$(mask$, testfeld$, p%, 2)

WhileLoop 0,SizeOf(gefunden$[])-1

    Case &Loop : Print ",";
    Print gefunden$[&Loop];

EndWhile

Print ""
mask$ = "(?i)~{[0-9A-F]{8}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{12}~}"
testfeld$ = "\n{D1A5279D-B27D-4CD4-A05E-EFDD53D08E8D}\n{594ABD08-C02C-4827-8ABF-A128006848A3}\n" + \
"{B59511BD6A5F4DF09ECF562A108D8A2E}\n69593D62-71EA-4548-85E4-04FC71357423\n677E2553DD4D43B09DA77414DB1EB8EA\n\n" + \
"{99367d71-08ad-4aec-8e73-55ae151614f9}\n{5ba3bba3-729a-4717-88c1-b7c4b7ba80db}\n{7e9081b59a6d4cc1a8c347f69fb4198d}\n" + \
"0c74f13f-fa83-4c48-9b33-68921dd72463\nb4b2fb69c6244e5eb0698e0c6ec66618\n\nDE011585-7317-4C0D-A9AF-0AF2C5E61DB8}\n" + \
"{E8038A99-A409-490B-B11A-159A3496426D\n{D44EF4F4-280B47E5-91C7-261222A59621}\n{5EDEB36C-9006-467A8D04-AFB6F62CD7D2}\n" + \
"{D995AC86-5697-4683-A34F2B778BD837ED}\n{283B67B2-430F-4E6F-97E6-19041992-C1B0}\n2F2B15A5-2615-4748-BDABA124210F15EC\n" + \
"07D267AB-7126-45EB8FFC-51994D05F0B2"
Print "\nverifiziere GUID : (sollten 4 Treffer sein)";testfeld$
Print "\nErgebnis:"
gefunden$[] = MultiMatch$(mask$, testfeld$, 0, 0)

WhileLoop 0,SizeOf(gefunden$[])-1

    Print "  "; gefunden$[&Loop]

EndWhile

/*
Print "\nErgebnis:"
gefunden$[] = MultiMatch2$(mask$, testfeld$, 0, 0)
WhileLoop 0,SizeOf(gefunden$[])-1
Print "  "; gefunden$[&Loop]
EndWhile
*/
WaitInput
Fin
 
System: Windows 8/10, XProfan X4
Programmieren, das spannendste Detektivspiel der Welt.
05.07.2015  
 



Zum Quelltext


Topictitle, max. 100 marque.
 

Systemprofile:

ne...aucune Systemprofil angelegt. [anlegen]

XProfan:

 Posting  Font  Smilies  ▼ 

s'il te plaît s'inscrire um une Beitrag trop verfassen.
 

Options du sujet

4.035 Views

Untitledvor 0 min.
Erhard Wirth14.06.2024
RudiB.26.04.2022
p.specht20.11.2021
Uwe Lang20.11.2021
plus...

Themeninformationen

cet Thema hat 1 participant:

Michael W. (1x)


Admins  |  AGB  |  Applications  |  Auteurs  |  Chat  |  protection des données  |  Télécharger  |  Entrance  |  Aider  |  Merchantportal  |  Empreinte  |  Mart  |  Interfaces  |  SDK  |  Services  |  Jeux  |  cherche  |  Support

un projet aller XProfaner, qui il y a!


Mon XProfan
Privé Nouvelles
Eigenes Ablageforum
Sujets-La liste de voeux
Eigene Posts
Eigene Sujets
Zwischenablage
Annuler
 Deutsch English Français Español Italia
Traductions

protection des données


Wir verwenden Cookies seulement comme Session-Cookies à cause de qui technischen Notwendigkeit et chez uns gibt es aucun Cookies de Drittanbietern.

si du ici sur unsere Webseite klickst ou bien navigierst, stimmst du unserer Erfassung de Informationen dans unseren Cookies sur XProfan.Net trop.

Weitere Informationen trop unseren Cookies et en supplément, comment du qui Kontrolle par-dessus behältst, findest du dans unserer nachfolgenden Datenschutzerklärung.


d'accordDatenschutzerklärung
je voudrais keinen Cookie