Page 1 of 1

<xyz> aus dem String "abc <xyz>" entfernen

Posted: 25 Feb 2016, 02:36
by Gurkentoepfer
... versucht mit...

Code: Select all

text=
(Ltrim
Mueller Hubert (dept) <Hubert.Mueller.web.de>; Meier Doris (dept) <Doris.Meier.web.de>
)

text := RegExReplace(text,"<*>")
	MsgBox % text
... tut aber nicht. Entfernt lediglich das ">" aus dem Text.
Gewünschtes Ergebnis wäre...
Mueller Hubert (dept); Meier Doris (dept)

Re: <xyz> aus dem String "abc <xyz>" entfernen

Posted: 25 Feb 2016, 03:43
by Gurkentoepfer
selbst gefunden mit Google's Hilfe, warum das funktioniert, verstehe ich aber auch nicht.
Die AHK-Hilfe bei RegEx ist etwas mager ausgestattet.

Code: Select all

text=
(Ltrim
Mueller Hubert (dept) <Hubert.Mueller.web.de>; Meier Doris (dept) <Doris.Meier.web.de>
)
text := RegExReplace(text,"<(.*?)>")
	MsgBox % text

Re: <xyz> aus dem String "abc <xyz>" entfernen

Posted: 25 Feb 2016, 05:47
by IRBaboon
warum es das erste < nicht entfernt hat kann ich auch nicht erklären aber * ist nur ein quantifier. der hätte sich in deinem fall eigentlich auf das erste < beziehen sollen. der . bedeutet das er alle zeichen ausser zeilenumbrüche findet. das * danach bedeutet das er das so oft macht wie möglich (greedy) und das *? bedeutet das er es nur so oft macht wie nötig (lazy).

Code: Select all

U)<(.*)>
würde auch gehen weil der U modifier alle quantifiers lazy macht.
wenn du den g (global) modifier verwendest dann werden alle im string vorkommenden treffer beachtet. in deinem fall nur der erste. bin mir aber nicht sicher ob ahk den modifier kennt, in der quick-reference steht er nämlich nicht mit drin.