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.