(PCRE) RegEx Header From mezo non-ASCII karakterek torlese/atirasa

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

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:

s/(?<=^From:\s[\x00-\x7F]*)[^\x00-\x7F]/_/g

(Ja, és mi van akkor, ha a From: nem fér be egy sorba?)