[rlug] perl chinese

Petru Rațiu rpetre at gmail.com
Wed Jan 23 08:22:16 EET 2019


Cu amendamentul ca inca nu mi-am baut cafeaua si n-am testat absolut nimic
din ce scriu mai jos:

- s{lala}{lulu}  e echivalentul lui s/lala/lulu/ dar cu alta forma de
quoting,e binecunoscutul operator search-and replace ;
- mxs sunt flaguri: m si s impreuna inseamna ca \n e considerat un caracter
oarecare, x inseamna ca whitespaces nu conteaza si ar ajuta la formatare
sau comments (oarecum degeaba in acest context, se pare)
- "> [^<]+ \z" din prima parte pare sa vrea sa insemne "> urmat de oricate
caractere care nu sunt <, dar minim unul, dupa care \z care e un soi de $
mai strict (prinde si enter-uri, de ex)
">" din partea a doua e mai simplu :)

Recomand cu caldura perldoc perlre (sau pt. lenesi
https://perldoc.perl.org/perlre.html )

Cred ca ce se vrea cu chestia asta e sa stearga de la finalul fiecarui
string din @array orice "codita" care nu e in interiorul <>, cu un pic de
extra magie sa permita si newlines daca exista. Schema cu s{}{} in loc de
s/// se foloseste sa scapi de escapat diverse /-uri, dar aici nu e cazul,
probabil a fost pusa din reflex, la fel ca si x-ul din mxs, care de obicei
se foloseste sa poti sa scrii mai desfasurat si sa comentezi (lucru pe care
autorul clar nu l-a dorit ca sa poata sa-i iasa onelinerul compact). De
notat ca se pot imagina diverse situatii unde abordarea asta da fail, de
exemplu din stringul "<tralala>>>>x" o sa stearga probabil doar x.

Ca penalizare suplimentara, contextul acestei chestii pare sa fie un fel de
regexp-based xml/html cleaning tool, caz in care ma simt obligat sa dau
link la celebrul https://stackoverflow.com/a/1732454 .

-- 
P.

On Tue, Jan 22, 2019 at 11:49 PM Alex 'CAVE' Cernat <cave at cernat.ro> wrote:

> salut
>
> intr-un script de perl am gasit chestia asta:
>
> s{ > [^<]+ \z }{>}mxs for @array;
>
> imi poate si mie traduce careva ? ca nici nu stiu de unde sa incep :-P
>
> mersi
>
> Alex
>
>
> _______________________________________________
> RLUG mailing list
> RLUG at lists.lug.ro
> http://lists.lug.ro/mailman/listinfo/rlug_lists.lug.ro
>


More information about the RLUG mailing list