Helitaanka dhammaan tartamada regex waxay had iyo jeer ahayd O(n²) | Mewayz Blog Skip to main content
Hacker News

Helitaanka dhammaan tartamada regex waxay had iyo jeer ahayd O(n²)

Faallo

9 min read Via iev.ee

Mewayz Team

Editorial Team

Hacker News

Qiimaha Qarsoon ee Isbarbardhigga Qaabka

Horumarinta, tibaaxaha caadiga ah (regex) waa qalab lagama maarmaanka u ah, mindida Ciidanka Swiss si loo kala saaro, loo ansixiyo, loogana soo saaro macluumaadka qoraalka. Laga soo bilaabo hubinta qaababka iimaylka ilaa xogta laga soo xoqo diiwaanka, regex waa go-to xalka. Si kastaba ha ahaatee, wajahadan xoogga badan hoosteeda waxaa ku jira dabinka wax qabad kaas oo ragaadiyay nidaamyada muddo tobanaan sano ah: wakhtiga ugu xun ee kakanaanta helitaanka dhammaan kulannada xargaha waa O(n²). Kakanaanta wakhtigan afar-geesoodka ah waxay ka dhigan tahay in marka xadhiggu u korayo si toos ah, wakhtiga habayntu uu u kori karo si xad dhaaf ah, taasoo keenta hoos u dhac lama filaan ah, daalka kheyraadka, iyo ifafaale loo yaqaanReDoS(Diidmada Adeegga Joogtada ah). Fahamka xadayntan dabiiciga ah waa talaabada ugu horeysa ee lagu dhisayo codsiyo ka sii adag oo hufan.

Maxay u tahay Regex Matching O(n²)? Dhibaatada Dib-u-socodka

Xiddiga kakanaanta O(n²) waxa ay ku jirtaa habka inta badan matoorada regex-ga caadiga ah ay isticmaalaan: dib u noqoshada. Marka mishiinka regex, sida midka Perl, Python, ama Java, uu isku dayo inuu helo dhammaan tartammada suurtogalka ah, si fudud uma sawirin xadhigga hal mar. Waxay sahamisaa wadooyin kala duwan. Tixgeli qaab fudud sida `(a+)+b` oo lagu dabaqay xadhig inta badan "a"s, sida "aaaaaaaaac". Matoorku si hunguri weyn ayuu u dhigmaa dhammaan "a" iyo kan ugu horreeya ee 'a+', ka dibna wuxuu isku dayaa inuu u dhigmo finalka "b". Marka ay guuldarreysato, dib bay u noqotaa—isaga oo is barbar dhigin "a" u dambeeya oo isku dayaysa qiyaasaha '+' kooxda dibadda. Habkani waa soo noqnoqda, isagoo ku qasbaya mishiinka inuu tijaabiyo isku darka kasta oo suurtagal ah ee sida "a" loo qaybin karo, taasoo keenta qarax isku dhafan oo suurtagal ah. Tirada waddooyinka uu matoorku sahaminayo waxay la mid noqon kartaa afargeeska dhererka xadhigga, haddaba O(n²).

  • Quantifiers hunguriga: Qaababka sida `.*` ama `.+` waxay cunaan qoraalka ugu badan ee suurtogalka ah marka hore, taasoo horseedaysa dib-u-dhac balaadhan marka qaybaha danbe ee qaabka ay ku guul daraysteen inay iswaafaqaan.
  • Quantifiers Nsted: Odhaahyada sida `(a+)+` ama `(a*a*)*` waxay abuuraan tiro jibbaar ah oo lagu kala qaybiyo xadhigga gelinta, si wayn u kordhinaya wakhtiga habaynta.
  • Habab aan madmadow lahayn: Marka xadhiggu isku simi karo habab badan oo is-dul-saaran, matoorku waa inuu hubiyaa suurtagal kasta si uu u helo dhammaan tartammada.

Saamaynta-Dunida-Dhabta ah: In ka badan Qunyar-u-dhaca kaliya

Tani maaha kaliya walaac tacliineed. Regex aan fiicnayn waxay ku yeelan kartaa cawaaqib xumo deegaanka wax soo saarka. Hubinta xaqiijinta xogta oo u muuqata mid aan dhib lahayn waxay noqon kartaa cidhiidhi marka la farsameeyo faylal waaweyn ama la tacaalayo mugga sare ee isticmaalka isticmaale. Natiijada ugu khatarta badan waa weerarka ReDoS, halkaas oo jilaa xaasidnimo ah uu bixiyo xarig si taxadar leh loo sameeyay kaas oo kicinaya waxqabadka ugu xun ee codsiga webka regex, si wax ku ool ah u laadlaada serverka oo ka dhigaya mid aan heli karin isticmaalayaasha sharciga ah. Ganacsiyada, tani waxay si toos ah u tarjuntaa wakhtiga dhimista, dakhliga lumay, iyo sumcad xumada. Marka la dhisayo nidaamyo adag, gaar ahaan kuwa socodsiiya xogta aan la aamini karin, ka warqabka dib-u-dhacyadan regex waa qayb muhiim ah oo ka mid ah amniga iyo hubinta waxqabadka.

"Waxaan mar helnay habayn yar oo casriyeyn ah oo soo bandhigtay regex si loo kala saaro xadhkaha wakiilka isticmaalaha - Injineer sare oo DevOps ah

Dhismaha Nidaamyada Wanaagsan ee Mewayz

Hadaba, sidee uga gudubnaa caqabadan aasaasiga ah? Xalku waxa uu ku lug leeyahay isku darka qalabayn ka wanaagsan iyo doorashooyin naqshadeed oo caqli badan. Marka hore, horumariyayaashu waxay isticmaali karaan falanqeeyayaasha regex si ay u aqoonsadaan qaababka dhibka leh oo ay dib ugu qoraan si ay u noqdaan kuwo waxtar leh (tusaale, iyaga oo isticmaalaya qiyaasaha lahaanshaha ama kooxaha atomiga). Waxqabadka kama dambaysta ah, algorithms kale ayaa jira kuwaas oo dammaanad qaadaya wakhtiga tooska ah, O(n), ee u dhigma qaabka, in kasta oo ay ku yar yihiin maktabadaha caadiga ah.

Tani waa meesha meherad ganacsi oo casri ah sida Mewayz ay ku siiso faa'iido weyn. Mewayz wuxuu kuu ogolaanayaa inaad qaybiso oo aad la socoto hababka muhiimka ah. Halkii laga lahaan lahaa arji keli keli ah halkaas oo regex-gaaban oo keliya curyaamin karo nidaamka oo dhan, waxaad geyn kartaa adeeg-yar oo go'doonsan oo xog-ururin iyo ansaxinta. Haddi arin hawl qabad soo baxdo, way ku jirtaa oo waa la xalin karaa iyada oo aan saamaynayn hawlaha kale ee ganacsiga. Intaa waxaa dheer, aaladaha la fiirsado ee ku dhex jira madal Mewayz waxay kaa caawin karaan inaad tilmaamto wax-qabad la'aantan ka hor inta aysan saameynin macaamiishaada, u beddelashada dhibaatada suurtagalka ah hawl hagaajin la maarayn karo. Markaad ku dhisto aasaas dabacsan oo la arki karo, waxaad hubisaa in caqligalka ganacsigaaga, oo ay ku jiraan habaynta qoraalka adag, uu ahaanayo hawl-qabad iyo adkaysi.

💡 DID YOU KNOW?

Mewayz replaces 8+ business tools in one platform

CRM · Invoicing · HR · Projects · Booking · eCommerce · POS · Analytics. Free forever plan available.

Start Free →

Su'aalaha Inta badan La Isweydiiyo

Qiimaha Qarsoon ee Isbarbardhigga Qaabka

Horumarinta, tibaaxaha caadiga ah (regex) waa qalab lagama maarmaanka u ah, mindida Ciidanka Swiss si loo kala saaro, loo ansixiyo, loogana soo saaro macluumaadka qoraalka. Laga soo bilaabo hubinta qaababka iimaylka ilaa xogta laga soo xoqo diiwaanka, regex waa go-to xalka. Si kastaba ha ahaatee, wajahadan xoogga badan hoosteeda waxaa ku jira dabinka wax qabad kaas oo ragaadiyay nidaamyada muddo tobanaan sano ah: wakhtiga ugu xun ee kakanaanta helitaanka dhammaan kulannada xargaha waa O(n²). Kakanaanta wakhtigan afar-geesoodka ah waxay la macno tahay in marka xadhiggu u korayo si toos ah, wakhtiga habayntu uu u kori karo si xad dhaaf ah, taasoo u horseedaysa gaabis lama filaan ah, daal khayraadka, iyo ifafaale loo yaqaan ReDoS (Diidmada Muujinta Joogtada ah ee Adeegga). Fahamka xadayntan dabiiciga ah waa talaabada ugu horeysa ee lagu dhisayo codsiyo ka sii adag oo hufan.

Waa maxay sababta Regex Matching O(n²)? Dhibaatada Dib-u-noqoshada

Xiddiga kakanaanta O(n²) waxa ay ku jirtaa habka inta badan matoorada regex-ga caadiga ah ay isticmaalaan: dib u noqoshada. Marka mishiinka regex, sida midka Perl, Python, ama Java, uu isku dayo inuu helo dhammaan tartammada suurtogalka ah, si fudud uma sawirin xadhigga hal mar. Waxay sahamisaa wadooyin kala duwan. Tixgeli qaab fudud sida `(a+)+b` oo lagu dabaqay xadhig inta badan "a"s, sida "aaaaaaaaac". Matoorku si hunguri weyn ayuu u dhigmaa dhammaan "a" iyo kan ugu horreeya ee 'a+', ka dibna wuxuu isku dayaa inuu u dhigmo finalka "b". Marka ay guuldarreysato, dib bay u noqotaa—isaga oo is barbar dhigin "a" u dambeeya oo isku dayaysa qiyaasaha '+' kooxda dibadda. Habkani waa soo noqnoqda, isagoo ku qasbaya mishiinka inuu tijaabiyo isku darka kasta oo suurtagal ah ee sida "a" loo qaybin karo, taasoo keenta qarax isku dhafan oo suurtagal ah. Tirada waddooyinka uu matoorku sahaminayo waxay la mid noqon kartaa afargeeska dhererka xadhigga, haddaba O(n²).

Saamaynta-Dunida-Dhabta ah: In ka badan Hoos-u-dhac uun

Tani maaha kaliya walaac tacliineed. Regex aan fiicnayn waxay ku yeelan kartaa cawaaqib xumo deegaanka wax soo saarka. Hubinta xaqiijinta xogta oo u muuqata mid aan dhib lahayn waxay noqon kartaa cidhiidhi marka la farsameeyo faylal waaweyn ama la tacaalayo mugga sare ee isticmaalka isticmaale. Natiijada ugu khatarta badan waa weerarka ReDoS, halkaas oo jilaa xaasidnimo ah uu bixiyo xarig si taxadar leh loo sameeyay kaas oo kicinaya waxqabadka ugu xun ee codsiga webka regex, si wax ku ool ah u laadlaada serverka oo ka dhigaya mid aan heli karin isticmaalayaasha sharciga ah. Ganacsiyada, tani waxay si toos ah u tarjuntaa wakhtiga dhimista, dakhliga lumay, iyo sumcad xumada. Marka la dhisayo nidaamyo adag, gaar ahaan kuwa socodsiiya xogta aan la aamini karin, ka warqabka dib-u-dhacyadan regex waa qayb muhiim ah oo ka mid ah amniga iyo hubinta waxqabadka.

Dhismaha Nidaamyada Wanaagsan ee Mewayz

Hadaba, sidee uga gudubnaa caqabadan aasaasiga ah? Xalku waxa uu ku lug leeyahay isku darka qalabayn ka wanaagsan iyo doorashooyin naqshadeed oo caqli badan. Marka hore, horumariyayaashu waxay isticmaali karaan falanqeeyayaasha regex si ay u aqoonsadaan qaababka dhibka leh oo ay dib ugu qoraan si ay u noqdaan kuwo waxtar leh (tusaale, iyaga oo isticmaalaya qiyaasaha lahaanshaha ama kooxaha atomiga). Waxqabadka kama dambaysta ah, algorithms kale ayaa jira kuwaas oo dammaanad qaadaya wakhtiga tooska ah, O(n), ee u dhigma qaabka, in kasta oo ay ku yar yihiin maktabadaha caadiga ah.

dhiso ganacsigaaga OS maanta

laga bilaabo kuwa madaxa banaan ilaa wakaaladaha, Mewayz waxa ay awoodaa 138,000+ meherado leh 208 qaybood oo isku dhafan. Ku bilow bilaash, cusbooneysi markaad koraan.

Samee xisaab bilaash ah →

Start managing your business smarter today

Join 6,208+ businesses. Free forever plan · No credit card required.

Ready to put this into practice?

Join 6,208+ businesses using Mewayz. Free forever plan — no credit card required.

Start Free Trial →

Ready to take action?

Start your free Mewayz trial today

All-in-one business platform. No credit card required.

Start Free →

14-day free trial · No credit card · Cancel anytime