[rlug] perl chinese

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


In drumul spre cafea, am si testat si mi-am dat seama ca exemplul cu
"<tralalala>>>x" nu functioneaza cum am zis, dar tot se gasesc usor moduri
sa-l faci sa dea fail. Cel mai probabil autorul a vrut sa scoata spatii si
enteruri de la finalul tagului si a zis ca stie regexp si nu i-e frica sa-l
foloseasca ( si s-a si zgarcit la comentarii), probabil ca contextul poate
lamuri mai bine intentia. Chestia cu Cthulhu ramane in continuare in
picioare.

A, pentru testat se ruleaza intr-o consola  perl -pe  's{ > [^<]+ \z
}{>}mxs' si incerci tot felul de stringuri sa vezi cum face (n-or sa mearga
asa cazurile alea cu \n in ele dar such is life, nu le poti avea pe toate).

In orice caz, sper ca te-ai mai lamurit ca nu e asa chineza cum pare la
prima privire.

-- 
P.

On Wed, Jan 23, 2019 at 8:22 AM Petru Rațiu <rpetre at gmail.com> wrote:

> 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