Înlocuiți codul bb, eticheta url

Vom fi angajați să analizăm îndeaproape codul bb.

Formularea problemei

Există un text în care există etichete [url] în diferite versiuni, și anume:

Ca text, pentru un test, am construit ceva care era de neînțeles, dar satisfăcând condițiile problemei. aici:

Acest text acoperă, desigur, nu toate opțiunile care sunt posibile, dar dacă doriți, puteți juca cu acest text :)

Regulile utilizează modificatori gixe. Voi explica ce înseamnă:

Voi explica construcția (?: Ceva). Pur și simplu capturează conținutul său ca paranteze obișnuite, dar, spre deosebire de ei, nu își scrie conținutul într-o variabilă cu un număr. Acest lucru economisește memoria și timpul și, de asemenea, nu permite confundarea în paranteze și numerele de variabile.

Variabilele primite $ 1, $ 2 și $ 3, trimitem la distrugerea funcției bb_url. Iată codul:

Ca și în prima soluție, am ținut cont de posibilele lacune în jurul semnei egale și de asocierea cotelor.

Această soluție funcționează în același mod. Odată cu testele efectuate, nu a existat nicio discrepanță în rezultatele lucrărilor ambelor decizii. Cu toate acestea, aș dori să știu care dintre ele este mai eficientă?

eficacitate

Abordarea este simplă, ca o portocalie. Amintiți-vă de timpul de începere și de sfârșitul perioadei de lucru a deciziei, apoi scădeați și aflați timpul de funcționare. Perl expresii regulate sunt foarte rapid, astfel încât chiar și pe o cantitate destul de mare de text, viteza este egal cu 0. Așa că a trebuit să construim un ciclu în care o mulțime de ori textul $ variabila a fost atribuit aceeași valoare, iar apoi, a fost tratată cu una dintre soluțiile. Am petrecut 10.000 de înlocuiri. Nu voi da codul complet aici, voi arăta doar pseudocodul.

$ start = ori;
pentru ($ i = 0; $ i<10000;$i++)
setați text $;
rulați textul $ prin intermediul obișnuit;
>
$ end = ori;
$ diff = $ end- $ start;
print diff;

Îmi închid scriptul. pe care am testat aceste soluții.

Ca urmare a testelor, am obținut rezultate care aratăau așa:

Mare regulat: 0,359
Două mici: 0,235

Concluzie: este mai eficient să utilizați două persoane obișnuite mici decât unul înmormântat. Îmi pare rău, e atât de frumoasă.

În acest articol, am analizat un exemplu concret de parsare a textului unui site. Dacă doriți să obțineți ceva de genul asta, efectuați profesional pe site-ul dvs. - comandați un graber sau un parser de la mine.

Articole similare