Thread RegEx mit bedingter Ersetzung (11 answers)
Opened by micha2 at 2023-07-09 13:44

micha2
 2023-07-09 13:44
#195126 #195126
User since
2023-07-09
6 Artikel
BenutzerIn
[default_avatar]
Ich möchte (zum analysieren einer Web-Seite) bedingte Ersetzung verwenden. Ich fange einfach an:
Code: (dl )
echo 'abbc' | perl -pe "s,b,{print \"-\"},ge" # --a11c

a unc c werden wegen -p zur Weiterverarbeitung mit | Pipe zurückgegeben. Allerdings ist die Ersetzung 11 statt -- und -- steht am Anfang. So funktioniert es:
Code: (dl )
echo 'abbc' | perl -pe "s,b,{\"-\"},ge" # a--c

Mit bedingter Ersetzung und ohne print, bekomme ich ebenfalls a--c:
Code: (dl )
1
2
echo 'abbc' | perl -pe "s,b,{if (1) {print \"-\"}},ge" # --a11c
echo 'abbc' | perl -pe "s,b,{if (1) {\"-\"}},ge" # a--c
Mit mehreren bedingten Ersetzungen bekomme ich nicht mehr mein gewünschtes Ergebnis a<><>c:
Code: (dl )
1
2
echo 'abbc' | perl -pe "s,b,{if (1) {print \"<\"}; print \">\"; if (0) {print \"y\"}},ge" # <><>a00c
echo 'abbc' | perl -pe "s,b,{if (1) {\"<\"}; \">\"; if (0) {\"y\"}},ge" # a00c

Als Ersatztext wird nur der letzte Befehl B3 (mit Wert 0) aus B1; B2; B3 verwendet. Wie (??) kann ich a<><>c (also WertVonB1WertVonB2WertVonB3), mit mehreren bedingten Ersetzungen, bekommen?
Code: (dl )
echo 'abbc' | perl -?? "s,b,??,g??" # a<><>c

Last edited: 2023-07-09 16:11:41 +0200 (CEST)

View full thread RegEx mit bedingter Ersetzung