Sziasztok!
szeretnem a Mail Header From mezojet egy RegEx -szel (PCRE) modositani.
egy
s/([^\x00-\x7F])/_/g
szepen mukodik, de ha szeretnem belevenni, hogy From -mal kezdodjon a sor:
(^From\:\s)....
akkor nyilvan mar nem mukodik.
Lehet RegEx -szel csak egy adott csoportban egyezeseket cserelni, vagy valahogyan rekurziv modon cserelni [tisztan RegEx -szel (PCRE)]?
Hozzászólások
Igy megy?
s/(^From\:\s)?([^\x00-\x7F])/$2_/g
Nem tudom, mit szeretne, de te ezt: :)
s/((?:^From\:\s)?)([^\x00-\x7F])/$2_/g
igen, hulyeseget irtam :D
Egyszer két napot szenvedtem egy ilyen miatt, azóta nagyon megjegyeztem.
De a tied is müködik Asdasd: headerre is. Touche
Csak arra akartam felhívni a figyelmet, hogy capture group van kérdőjelezve.
(Aztán rájöttem, hogy ez csak egy korai InDesign-implementcióban volt gond, mert elcsúszott miatta a számozás, de PCRE-ben nem gond.)
Igen, az jogos. Már mikor leirtam rájöttem, csak nem lett volna etikus kitörölni :D
Egész pontosan mit szeretnél mire cserélni?
Ezekbol:
From: "almaÖbéka" <info3@alma.com>
From: "Íalmaäübéka" <info1@alma.hu>
From: "almjabßÜa" <info2@alma.de>
ezt
From: "alma_b_ka" <info3@alma.com>
From: "_alma__b_ka" <info1@alma.hu>
From: "almjab__a" <info2@alma.de>
Amit irtal:
s/((?:^From\:\s)?)([^\x00-\x7F])/$2_/g
nem jo de ha kiszeded a $2 -t, akkor mukodik, csak nem ellenorzi, hogy a sor (^From\:\s) -sel kezdodik.
A nem elfogott csoportod a vegen kerdojellel.... ugye az vagy ott van vagy nincs....
Más miatt írtam, nem neked.
Amit te szeretnél, azt egy kifejezéssel nem tudod megcsinálni. Ez lenne a megoldás, ha a lookbehind nem csak fix hosszra lenne hajlandó működni:
(Ja, és mi van akkor, ha a From: nem fér be egy sorba?)
De mivel igen, igy ez nem megoldas....
Utanaolvasgattam...
Ezzel megy:
s/(^From\:\s|(?!^)\G).*?(\n\s+(.*?))*\K[^\x00-\x7F]/_/gm
Ha nem fer(ne) be egy sorba.... ez akkor is lekezeli
Szoval elmeletileg megoldva
Nagyon szép.
A magyarázat hozzá: https://regex101.com/r/NlH2yj/1
https://thecodinglove.com/whenever-i-try-to-write-my-own-regexp
Egyebkent tokre szep, hogy vegigszenvedtem.... DE
a postfix pcre tabla ezt k.rvara nem eszi meg :-)...
egyezesre tokeletes.... de nem csereli a karaktert....
szoval adtam a szarnak egy pofont
Ez tényleg szép. A \G-ről elfeledkeztem, hogy létezik. :)