PregMatch()
Verfasst: 22.12.2015 22:35
Nachbildung von PHPs preg_match():
Code: Alles auswählen
Dim Teile.s(3)
Dim Auflosung.s(30)
Declare.l PregMatch(Pattern.s, String.s, Array Arr.s(1))
Teile(0) = "480x360"
Teile(1) = "640x480 [SAR 16:11]"
Teile(2) = "852x640 [DAR 320:121]"
Teile(3) = "1136x852 [SAR 16:11 DAR 320:121]"
For i=0 To 3
Debug PregMatch("(\d+)x(\d+)( \[(SAR \d+:\d+)?\s?(DAR \d+:\d+)?\])?", Teile(i), Auflosung())
Debug ""
Next i
;{ PregMatch()
;PregMatch() ist eine Nachbildung von PHPs preg_match() für die sogenannten regulären Ausdrücke,
;englisch „regular expressions“ oder kurz REGEX. Die Argumente Flags und Offset der PHP-Vorlage
;werden dabei noch nicht unterstützt. PregMatch prüft einen Text per Suchmuster auf Übereinstim-
;mungen und übernimmt diese in ein Feld. Enthält das Suchmuster einen Fehler, wird 0 zurückgegeben.
;Nicht vergessen: Die PCRE-Lizenz in den Quelltext kopieren!
Procedure.l PregMatch(Pattern.s, String.s, Array Arr.s(1))
If CreateRegularExpression(0, Pattern)
If ExamineRegularExpression(0, String)
Debug "Count: "+CountRegularExpressionGroups(0)
NextRegularExpressionMatch(0) ; genau 1x durchlaufen
For i=1 To CountRegularExpressionGroups(0)
Arr(i) = RegularExpressionGroup(0, i)
Debug "Group "+i+": "+RegularExpressionGroup(0, i)
Next i
EndIf
FreeRegularExpression(0)
ProcedureReturn 1
Else
Debug RegularExpressionError()
ProcedureReturn 0
EndIf
EndProcedure
;}