Tijaabiyaha Regex waa qalab loogu talagalay in lagu tijaabiyo JavaScript regular expressions iyadoo la adeegsanayo qoraal tusaale ah. Qalabkani wuxuu si toos ah u muujiyaa mid kasta oo ku habboon iyo capture group-yada isagoo iftiiminaya, taas oo kuu sahlaysa inaad aragto sida regular expression-kaagu u dhaqmo marka uu la kulmo qoraallo kala duwan.
Regular expressions (regex) waa qaabab loo isticmaalo in lagu dhex raadiyo, lagu garto, ama lagu beddelo xogta qoraalka ah dhexdiisa. Isticmaalka qalabkan wuxuu muhiim u yahay qof kasta oo raba inuu xaqiijiyo in qaabka uu qoray uu si sax ah u aqoonsanayo qoraalka, qofka raba inuu fahmo saamaynta calanka (flags) kala duwan, qofka raba inuu soo saaro qaybo gaar ah oo qoraalka ah isagoo isticmaalaya capture groups, ama qof raba inuu xalliyo khaladaadka keena gaabiska mishiinka regex.
Sida Loo Isticmaalo Qalabka iyo Gelinta Xogta
Si aad u tijaabiso regular expression, qalabku wuxuu u baahan yahay saddex qaybood oo gelineed oo muhiim ah:
- Pattern: Kani waa regular expression-ka aad rabto inaad tijaabiso. Tusaale ahaan placeholder-ka ku dhex jira qalabka waa
\d+. - Calanka (Flags): Kuwani waa doorashooyin wax ka beddela habka raadinta ee mishiinka JavaScript regex:
- g (Global): Wuxuu helayaa wax kasta oo ku habboon halkii uu ka heli lahaa oo kaliya kan koowaad.
- i: Wuxuu iska indho-tiraa farqiga u dhexeeya xarfaha waaweyn iyo kuwa yaryar.
- m (Multiline): Wuxuu ka dhigaysaa calaamadaha
^iyo$inay la jaanqaadaan bilowga iyo dhammaadka xariiq kasta, halkii ay ka ahaan lahaayeen bilowga iyo dhammaadka qoraalka oo dhan. - s: Wuxuu u oggolaanayaa dhibicda (
.) inay sidoo kale la jaanqaaddo xariiq-jebinta.
- Qoraalka tijaabada: Kani waa qoraalka aad ku tijaabinayso pattern-kaaga. Placeholder-ka qalabka ku jira waa "Dheji ama ku qor qoraal si aad ugu tijaabiso pattern-kaaga".
Natiijooyinka iyo Muujinta Xogta
Marka aad geliso pattern-ka iyo qoraalka tijaabada, qalabku wuxuu isla markiiba soo saarayaa natiijooyinka soo socda:
- Kuwa ku habboon ee la iftiimiyay: Qoraalka tijaabada oo ay ku dhex iftiimin yihiin dhammaan qaybaha ku habboon pattern-ka.
- Kuwa ku habboon: Liis muujinaya natiijo kasta oo la helay. Haddii aad isticmaasho capture groups, mid kasta oo ku habboon wuxuu hoos ku yeelan karaa calaamadda Group
{n}oo muujinaysa qaybta la qabtay. - Kuwa ku habboon:
{count}: Tani waxay muujinaysaa tirada guud ee ku habboonaanta la helay. - Xarfo: Waxay muujinaysaa tirada xarfaha uu ka kooban yahay qoraalka tijaabada.
Shuruucda Qalabka iyo Xaaladaha Gaarka Ah
Qalabku wuxuu leeyahay shuruuc u gaar ah oo maamusha habka shaqada iyo xaddidnaanta natiijooyinka si loo ilaaliyo waxqabadka biraawsarkaaga:
- Haddii aan la dooran calanka 'g' (Global), qalabku wuxuu soo celinayaa oo kaliya isku-habboonaanta koowaad.
- Marka calanka 'g' (Global) la doorto, qalabku wuxuu soo celin karaa ugu badnaan 1,000 oo ku habboon, wuxuuna soo bandhigi karaa ugu badnaan 100 kaararka isku-habboonaanta ah.
- Haddii tirada ku habboon ay dhaafto xadka muujinta, qalabku wuxuu soo bandhigayaa fariinta "Muujinaya
{max}-ka ugu horreeya.". - Haddii aan wax ku habboon la helin, qalabku wuxuu muujinayaa "Wax ku habboon lama helin.".
- Haddii qaabka regular expression-ka aad qortay uu khaldan yahay, fariinta "Regular expression khaldan." ayaa soo baxaysa.
- Waxaad nadiifin kartaa dhammaan xogta adoo gujinaya badhanka "Nadiifi", kaas oo soo saari doona fariinta "Waa la nadiifiyay.".
Ka Hortagga Dib-u-dhaca Masiibada Ah (Catastrophic Backtracking)
Mid ka mid ah dhibaatooyinka ugu waaweyn ee ku dhaca regular expressions waa waxa loo yaqaan "catastrophic backtracking". Tani waxay dhacdaa marka pattern-ku uu leeyahay ku-celcelis is-dhex-gashan (sida (a+)+), taas oo ku qasbaysa mishiinka regex inuu isku dayo balaayiin isku-darro ah marka uu la kulmo qoraal aan ku habboonayn. Tani waxay keeni kartaa in biraawsarku uu fariisto ama uu xirmo.
Si looga hortago arrintan, Tijaabiyaha Regex wuxuu leeyahay nidaam ammaan oo xaddidaya waqtiga shaqada. Haddii pattern-ku uu qaato waqti ka badan 2 ilbiriqsi si uu u socdo, qalabku wuxuu joojinayaa hawsha wuxuuna muujinayaa fariinta: "Pattern-kan wuxuu qaadanayaa waqti aad u dheer — waxaa laga yaabaa inuu aad u gaabiyo. Isku day inaad fududayso.". Si aad u hagaajiso, isku day inaad fududayso qaabka oo aad ka fogaato ku-celcelinta is-dhex-gashan.
Ilaalinta Xogta iyo Qofka Isticmaalaya
Pattern-kaaga iyo qoraalkaaga waxaa lagu tijaabiyaa biraawsarkaaga dhexdiisa. Waxba looma soo geliyo BroBroGo. Tani waxay ka dhigan tahay in xogtaada lagu farsameeyo gudaha kombiyuutarkaaga ama aaladdaada, iyadoo aan loo dirin wax server kaxeynaya dibadda ah.
Su'aalaha Badanaa La Isweydiiyo (FAQ)
Ma ammaan baa inaan qoraalkayga halkan ku dhejiyo?
Haa. Isku-habboonaantu waxay gebi ahaanba ka dhacaysaa biraawsarkaaga — waxba looma soo diro BroBroGo.
Maxay ka dhigan yihiin calanka g/i/m/s?
g waxay helaysaa wax kasta oo ku habboon halkii ay ka heli lahayd kan koowaad oo kaliya. i waxay iska indho-tirtaa xarfaha waaweyn/yaryar. m waxay ka dhigaysaa ^ iyo $ inay la jaanqaadaan bilowga iyo dhammaadka xariiq kasta halkii ay ka ahaan lahayd qoraalka oo dhan. s waxay u oggolaanaysaa dhibicda (.) inay sidoo kale la jaanqaaddo xariiq-jebinta.
Maxay u tiri qalabku pattern-kaygu wuxuu qaadanayaa waqti aad u dheer?
Qaababka qaarkood waxay keenaan dib-u-dhac masiibo ah (catastrophic backtracking) — mishiinku wuxuu isku dayaa isku-darro aad u fazla ah ka hor inta u uusan quusan, taas oo fariisin karta tab-ka biraawsarkaaga. Qalabkani wuxuu joojiyaa isku-dayga 2 ilbiriqsi ka dib haddii taasi dhacdo, si bogga laftiisu uusan u xirmin. Isku day inaad fududayso ku-celcelinta is-dhex-gashan sida (a+)+.