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

Stelle Fragen zur Programmierung mit Autohotkey

Moderator: jNizM

User avatar
Gurkentoepfer
Posts: 48
Joined: 24 Feb 2014, 14:52

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

25 Feb 2016, 02:36

... 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)
User avatar
Gurkentoepfer
Posts: 48
Joined: 24 Feb 2014, 14:52

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

25 Feb 2016, 03:43

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
User avatar
IRBaboon
Posts: 27
Joined: 11 Aug 2014, 07:48

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

25 Feb 2016, 05:47

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.

Return to “Ich brauche Hilfe”

Who is online

Users browsing this forum: No registered users and 4 guests