Moin,
bei langen Texten könnte es sich lohnen, sich die Fundposition zu merken, um dort wieder aufzusetzen:
Code: Select all
T := "Israel wählt rechts, religiös und natürlich rechtsreligiös"
Pos := 1
While (Pos := RegExMatch(T, "&#(x*\w+);", Muster, Pos)) ; #x hexadezimalen und # dezimalen Code dekodieren
T := StrReplace(T, Muster, Chr("0" Muster1))
MsgBox,% T
Möglicherweise bringt es auch manchmal etwas, wenn man
StrReplace() durch
RegExReplace() ersetzt, weil man auch hier die Fundposition nutzen kann:
Code: Select all
T := "Israel wählt rechts, religiös und natürlich rechtsreligiös"
Pos := 1
While (Pos := RegExMatch(T, "&#(x*\w+);", Muster, Pos)) ; #x hexadezimalen und # dezimalen Code dekodieren
T := RegExReplace(T, Muster, Chr("0" Muster1), , , Pos)
MsgBox,% T
Für etwas mehr Zuverlässigkeit kann die Posix-Klasse
xdigit sorgen:
Code: Select all
T := "Israel wählt rechts, religiös und natürlich rechtsreligiös"
Pos := 1
While (Pos := RegExMatch(T, "&#(x[[:xdigit:]]{1,4}|\d{1,5});", Muster, Pos)) ; #x hexadezimalen und # dezimalen Code dekodieren
T := RegExReplace(T, Muster, Chr("0" Muster1), , , Pos)
MsgBox,% T