Thread RegEx: Ersetze, wenn Zeichen in gerader Anzahl vorkam (11 answers)
Opened by pktm at 2009-05-25 12:15

schwabi
 2009-05-26 13:40
#121926 #121926
User since
2006-02-07
18 Artikel
BenutzerIn

user image
So z.B.?

Code: (dl )
1
2
3
$_='~1~,,~234~,7,~,,~,8';
s/(~\d\d*~)(,,)/\1,~~,/g;
~1~,~~,~234~,7,~,,~,8

In der genannten Beispielzeile wäre nur eine Ersetzung: Nach ~1~ soll ,, durch ,~~, ersetzt werden:

Die Ersetzung funktioniert auch, wenn das Muster mehrfach vorkommt: Nach ~1~ und nach ~223~:

Code: (dl )
1
2
3
$_='~1~,,~234~,7,~,,~,8,~223~,,9';
s/(~\d\d*~)(,,)/\1,~~,/g;
~1~,~~,~234~,7,~,,~,8,~223~,~~,9

View full thread RegEx: Ersetze, wenn Zeichen in gerader Anzahl vorkam