Shaxda tusmada
Tababarkaan, waxaad ku baran doontaa sida loo isticmaalo tibaaxaha caadiga ah ee Excel si aad u hesho oo aad u soo saarto xaraf-hoosaadyo u dhigma qaab la bixiyay.
unugyada. Hawlahaas waxay la qabsan karaan inta badan caqabadaha soo saarista xargaha ee xaashidaada shaqo. Inta badan, laakiin maaha dhammaan. Marka qoraalku uu turunturoodo, tibaaxaha caadiga ah ayaa soo gurmada. Sug… Excel ma laha hawlo RegEx ah! Run, ma jiraan hawlo la dhisay. Laakiin ma jiraan wax kaa hor istaagaya inaad isticmaasho kuwaaga :)>- >
Excel VBA Regex function si aad u soo saarto xargaha
Si aad ugu darto shaqada Regex Extract caadada u ah Excel-kaaga, Ku dheji koodka soo socda tafatiraha VBA. Si loo awoodo tibaaxaha caadiga ah ee VBA, waxaan isticmaaleynaa sheyga Microsoft RegExp ee ku dhex dhisan.Shaqada Dadweynaha RegExpExtract text_matches () Sida String Dim matches_index sida isku dhafka qaladka GoTo ErrHandl RegExpExtract = "" Deji regex = CreateObject ( "VBScript.RegExp" ) regex.pattern = naqshad regex.Global = Run regex.MultiLine = Run haddii ay run tahay = ciyaar. Ignorecase = Been kale regex.ignorecase = Dhammaadka Runta Hadii La Dhigo Matches = regex.Execute(qoraalka) Hadii 0 < tartamoVBA RegExp, waxaan kugu dhiirigelinayaa inaad akhrido qaybta xigta ee ka hadlaysa hawlo badan oo awood badan .NET Regex.Custom .NET ku salaysan shaqada Regex si aad u soo saarto qoraalka Excel
> Si ka duwan hawlaha VBA RegExp waxaa qori kara isticmaale kasta oo Excel ah, .NET RegEx waa maamulaha horumariyaha. Microsoft .NET Framework waxa ay taageertaa erey-bixin joogto ah oo si buuxda u la jaanqaadi karta Perl 5. Maqaalkani kuma bari doono sida loo qoro hawlahan oo kale (Anigu ma ihi barnaamij-waxbarasho mana haysto fikrad yar oo ku saabsan sida loo sameeyo :)Afar hawlood oo awood leh oo lagu farsameeyay heerka .NET RegEx engine waxaa mar hore qoray soo saarayaashayada oo lagu daray Ultimate Suite. Hoosta, waxaan ku tusi doonaa qaar ka mid ah isticmaalka la taaban karo ee shaqada si gaar ah loogu talagalay soo saarista qoraalka ee Excel.
Talo. Macluumaad ku saabsan .NET Regex syntax, fadlan tixraac .NET Regular Expression Language.
Sida loo soo saaro xabagta gudaha Excel iyadoo la adeegsanayo tibaaxaha caadiga ah
>Adiga oo u malaynaya in lagu rakibay nuqulkii ugu dambeeyay ee Ultimate Suite, soo saarista qoraalka iyadoo la adeegsanayo tibaaxaha caadiga ah waxay hoos u dhigtaa labadan tallaabo:
> 14> 12> Tabka Ablebits Data , gudaha Qoraalka kooxda, dhagsii Qalabka Regex . > 13>AblebitsRegexExtract syntax
>Hawshayada caadada waxay leedahay hab-raacyada soo socda:
AblebitsRegexExtract Regular_expression (loo baahan yahay) - qaabka regex si uu u dhigmo. > Xusuusin muhiim ah! Shaqadu waxay ku shaqaysaa oo keliya mishiinnada ay ku rakiban yihiin Ultimate Suite for Excel.Xusuusyada isticmaalka
Si aad u fududayso qalooca waxbarashadaada iyo waayo-aragnimadaada mid xiiso leh, fadlan u fiirso qodobadan:
- Si aad u abuurto qaacido, waxaad isticmaali kartaa Regex Tools , ama Excel's Insert function dialog, ama ku qor magaca shaqada oo dhan unug. Marka qaacidada la geliyo, waxa aad maamuli kartaa (wax ka beddel, koobiyi ama guuri) sida nooc kasta oo qaacido ah.
- Nashqada aad geliso Regex Tools pane waxa ay tagaysaa doodda 2aad. Waxa kale oo suurtogal ah in lagu hayo odhaah joogto ah unug gaar ah. Xaaladdan oo kale, kaliya u isticmaal tixraaca unugga ee doodda 2aad.
- Shaqadu waxay soo saartaa marka ugu horreeya ee la helay .
- Sida caadiga ah, shaqadu waa kiis -xasaasi ah . U dhigma kiis aan dareen lahayn, isticmaal qaabka (?i)
- Hadii ciyaar aan la helin, khaladka #N/A waasoo laabtay.
Regex si loo soo saaro xadhkaha u dhexeeya labada xaraf
Si aad u heshid qoraal u dhexeeya labada xarfo, waxaad isticmaali kartaa koox wax soo qabata ama hareeraha ka eeg.
Aan soo baxno. waxaad tidhaahdaa waxaad raadinaysaa inaad soo saarto qoraalka dhexda. Kooxda wax qabsata waa habka ugu fudud
Tanabka 1 : \[(.*?)\]
Marka la eego dhinaca wanaagsan iyo xagga hore, natiijadu waxay noqon doontaa mid sax ah. isku mid.Qaabka 2 : (?<=\[)(.*?)(?=\])
(?* Kooxda wax qabsata oo aan lahayn calaamad su'aal (.*) waxay samaynaysaa raadis hunguri weyn lehoo wax walba ka soo qabtaan kii hore [ilaa kan u dambeeya]. soo socota: =AblebitsRegexExtract(A5, $A$2)
> 16> Sida loo helo dhammaan tartamada >Sida horeba loo sheegay, shaqada AblebitsRegexExtract waxay soo saari kartaa hal ciyaar oo keliya. Si aad u hesho dhammaan kulannada, waxaad isticmaali kartaa shaqada VBA-da ee aan horay uga soo hadalnay. Si kastaba ha ahaatee, waxaa jira hal digniin - VBA RegExp ma taageerto qabashada kooxaha, markaa qaabka kor ku xusan wuxuu soo celin doonaa jilayaasha "xuduuda" sidoo kale, xirmooyinka kiiskeena.
=TEXTJOIN(" ", TRUE, RegExpExtract(A5, $A$2))
Si looga takhaluso xadhkaha, ku BADAAL xadhkaha madhan ("") adigoo isticmaalaya qaacidadan:
=SUBSTITUTE(SUBSTITUTE(TEXTJOIN(", ", TRUE, RegExpExtract(A5, $A$2)), "]", ""),"[","")
Si loo akhriyo si ka wanaagsan, waxaanu u isticmaalnaa comma si loo xadido. >
Regex si loo soo saaro qoraalka u dhexeeya labada xadhig
> Habka aanu u shaqaynaysi dhab ah u fasir).Waxay ku xiran tahay tibaaxaha caadiga ah ee la geliyo A2, qaacidada hoose waxay soo saari doontaa natiijooyin kala duwan:
> =AblebitsRegexExtract(A5, $A$2)
Regex si loo soo saaro magaca domain buuxa oo leh dhammaan subdomains:
Regex si loo soo saaro heerka labaad > domain oo aan lahayn subdomains:
Taasi waa sida loo soo saaro qaybo ka mid ah qoraalka gudaha Excel iyadoo la adeegsanayo tibaaxo joogto ah. Waxaan kaaga mahadcelinayaa inaad akhriday waxaanan rajeynayaa inaan kugu arko blog-keena toddobaadka soo socda!
la soo dajin karo
Excel Regex Extract Tusaalooyinka (.xlsm file)
Ultimate Suite trial version (.exe faylka)
\b(0?[0-9]matches.Count - 1 text_matches(matches_index, 0) = kulanHaddii aad khibrad yar u leedahay VBA-da, hagaha adeegsadaha tallaabo-tallaabo ah ayaa laga yaabaa inuu ku caawiyo: Sida loo geliyo code VBA gudaha Excel.
> Ogow. Si hawshu u shaqeyso, hubso inaad u kaydiso faylkaaga sida buug-shaqeedka macro-enabled(.xlsm).RegExpExtract syntax
Shaqada RegExpExtract waxay raadisaa xarkaha wax gelinta ee qiyamka ku habboon tibaaxaha caadiga ah waxayna soo saartaa hal ama dhammaan tabarrucyada. :
RegExpExtract (qoraal, qaab, [tusaale_num], [match_case])Halkan:
- > Qoraal (loo baahan yahay) - xargaha qoraalka ee lagu baadho. >
- > Qaabka (loo baahan yahay) - tibaaxaha caadiga ah ee la mid ah. Marka si toos ah loogu keeno qaacido, nashqada waa in lagu lifaaqaa calaamado xigasho oo labanlaab ah. > 12> Tusaale_num (ikhtiyaar) - lambar taxane ah oo tilmaamaysa tusaalaha la soo saarayo. Haddii la iska daayo, soo celisa dhammaan kulammada la helay (default)
- > Match_case (ikhtiyaar) - wuxuu qeexayaa haddii la isku mid yahay ama la iska indhatiray kiiska qoraalka. Haddii RUN ama laga tago (default), u dhigma kiis xasaasi ah ayaa la sameeyaa; haddi BEEN - kiis aan dareen lahayn >
Shaqadu waxay ka shaqeysaa dhammaan noocyada Excel 365, Excel 2021, Excel2019, Excel 2016, Excel 2013 iyo 2010 Excel
>- >
- Sida caadiga ah, shaqadu waxay ku soo noqotaa dhammaan kulammada la helay unugyada deriska ah sida ku cad tusaalahan. Si aad u hesho dhacdo gaar ah, keen nambar u dhiganta tusaale_num doodda.
- Sida caadiga ah, shaqadu waa xaalad xasaasi ah . U dhigma kiis-dareenka-la'aanta, dhig kiis_ku-dhiman dooda BEEN. Sababtoo ah xaddidaadda VBA-da, kiis-ku-dhis la'aanta (?i) ma shaqeyn doono.
- Haddii qaab sax ah aan la helin , shaqadu waxba soo celinayso (xadhig faaruq ah).
- Haddii qaabku aanu shaqaynayn , waa #QIIMAHA! >
Regex in laga soo saaro nambarka xargaha
>Innagoo raacayna nuxurka ugu sarreeya ee waxbaridda "fudud ilaa kakan", waxaan ku billaabaynaa kiis cad: ka soo saarida lambarka xargaha.
The Waxa ugu horreeya ee aad go'aansatid waa lambarka aad soo ceshanayso: kow, u dambeeya, dhacdo gaar ah ama dhammaan tirooyinka. Marka la eego \ d macnaheedu waa lambar kasta oo ka bilaabma 0 ilaa 9, iyo + macnaheedu waa hal ama dhowr jeer, odhaahdeena joogtada ah waxay qaadataa foomkan:
Qaabka : \d+
Deji tus_nambar ilaa 1 waxaadna heli doontaa natiijada la rabo:
> =RegExpExtract(A5, "\d+", 1)
>Halka A5 ku yaal xarriiqii asalka ahaa qaabka unug horay loo sii qeexay ($A$2) oo ciwaanka ku xidh calaamada $: =RegExpExtract(A5, $A$2, 1)
Hel nambarka u dambeeya
>Si aad u soo saarto lambarka ugu dambeeya ee xadhig , waa kan qaabka loo isticmaalo:
Qaabka : (\d+)(?!.*\d) >
>oo loo turjumay luqadda aadanaha , waxa ay odhanaysaa: hel nambar aan la raacin (meel kasta, ma aha isla markiiba) nambar kasta oo kale. Si aan taas u muujino, waxaan isticmaaleynaa muuqaal taban (?!.*\d), taas oo macnaheedu yahay in dhanka midig ee qaabka aysan jirin lambar kale (\d) iyada oo aan loo eegin inta xaraf ee kale ayaa ka horreeya.<3 =RegExpExtract(A5, "(\d+)(?!.*\d)")
Talooyin:
- >
- Si aad u hesho dhacdo gaar ah , isticmaal \d+ qaabka iyo taxane habboonnambarka tusaale_num .
- Qaabka lagu soo saaro dhammaan tirooyinka waxa lagu falanqeynayaa tusaalaha soo socda. >
Regex si loo soo saaro dhammaan tartammada
> 11>Adoo riixaya tusaalaheena in yar, ka soo qaad inaad rabto inaad ka hesho dhammaan lambarada xargaha, ma aha mid keliya>tusaale_num dood. Qaabka caadiga ah waa wada siman yahay, markaa waxaad si fudud uga tagaysaa cabbirkan:
=RegExpExtract(A2, "\d+")
Qaabacadu waxay si qurux badan ugu shaqeysaa hal unug, laakiin habdhaqanku wuxuu ku kala duwan yahay Dynamic Array Excel iyo noocyada aan firfircoonayn.
Excel 365 iyo Excel 2021
Taageerada arraysyada firfircoon awgeed, qaacidada caadiga ah waxay si toos ah ugu daadataa unugyo badan intii loo baahnaa si ay u muujiso dhammaan natiijooyinka la xisaabiyay. Marka la eego Excel, tan waxaa loo yaqaannaa kala daadsanaan:
Excel 2019 iyo hoose
Excel-ka hore, qaacidada sare waxay soo celinaysaa hal ciyaar. Si aad u hesho taraqyo badan, waxaad u baahan tahay inaad ka dhigto hab habaysan. Taas awgeed, dooro unugyo kala duwan, ku qor caanaha, oo taabo Ctrl + Shift + Geli si aad u dhamaystirto.
Dhinaca hoose ee habkan waa farabadan #N/A oo ka muuqda "extra cells" . Nasiib darro, waxba lagama qaban karo (IFERROR iyo IFNA midna ma hagaajin karaan, hoogay). >
Ka saar dhammaan tabarruca hal unug
>Marka la habaynayo tiirka xogta, habka kor ku xusani ma shaqayn doono. Xaaladdan oo kale, xal ku habboonwaxay ku soo celinaysaa dhammaan kulammada hal unug. Si taas loo sameeyo, u adeeg natiijooyinka RegExpExtract shaqada TEXTJOIN oo kala saar xaddidaad kasta oo aad jeceshahay, dheh comma iyo meel bannaan: > =TEXTJOIN(", ", TRUE, RegExpExtract(A5, "\d+"))
> Ogow. Sababtoo ah shaqada TEXTJOIN waxay ku jirtaa Excel oo keliya Microsoft 365, Excel 2021 iyo Excel 2019, qaacidada ma shaqeyn doonto noocyadii hore. Regex si looga soo saaro qoraalka xargaha
> xarafka alphanumeric waa hawl adag oo Excel ah. Iyadoo regex, waxay noqotaa mid fudud sida pie. Kaliya isticmaal fasalka la diidey si aad u waafajiso wax kasta oo aan digit ahayn.Qaabka : [^\d]+
Si aad u hesho xargaha hoose ee unugyada gaarka ah , qaacidadu waa:
=RegExpExtract(A5, "[^\d]+")
>Si aad u soo saarto dhammaan tabarrucyada hal unug, buulka RegExpExtract ku dhex TEXTJOIN sidan:
=TEXTJOIN("", TRUE, RegExpExtract(A5, "[^\d]+"))
> Regex to ka soo saar ciwaanka iimaylka xardhka
Si aad ciwaanka iimaylka uga soo saarto xadhig ka kooban macluumaad badan oo kala duwan, qor odhaah joogto ah oo soo koobaysa qaab dhismeedka ciwaanka iimaylka
> Qaabka : [\w \.\-]+@[A-Za-z0-9\.\-]+\.[A-Za-z]{2,24}>Jabinta regex-kan , waa kan waxa aan helayno:
- [\w\.\-]+ waa isticmaale ka kooban 1 ama in ka badan xaraf, xarfo xarfo ah, xarfo hoosaadyo iyo xaraf-xidhaale
- @ calaamad
- [A-Za-z0-9\.\-]+ waa magac domain ka kooban: xarfo waaweyn iyo kuwa hoose, nambaro, xarafyo iyo dhibco (haddii ay dhacdoee subdomains). Dhibcaha hoose halkan lagama oggola, sidaas darteed 3 nooc oo kala duwan (sida A-Z a-z iyo 0-9) ayaa la isticmaalaa halkii \w ee xaraf kasta, lambar ama xaraf u dhigma.
- \.[A-Z a-z ]{2,24} waa bogga heerka sare Waxay ka kooban tahay dhibco ay raacaan xarfo waaweyn iyo kuwa hoose. Inta badan domains heerka sare waa 3- xaraf dheer (tusaale .com .org, .edu, iwm.), laakiin aragti ahaan waxay ka koobnaan kartaa 2 ilaa 24 xaraf (TLD ugu dheer ee diiwaangashan).
=RegExpExtract(A5, $A$2)
> Waxay ku timaadaa soo saarista domainka iimaylka, fikirka ugu horeeya ee maskaxda ku soo dhacaya waa adoo isticmaalaya koox wax qabata si ay u helaan qoraal isla markiiba raacaya @ character.Qaabka : @([A-Za-z0) -9 \.\-]+\.[A-Za-z]{2,24})
U adeegso shaqadeena RegExp:
=RegExpExtract(A5, "@([A-Za-z0-9\.\-]+\.[A-Za-z]{2,24})")
Marka la eego tibaaxaha caadiga ah ee caadiga ah, wax kasta oo ka baxsan kooxda wax qabtay kuma jiraan soo saarista. Qofna ma garanayo sababta VBA RegEx u shaqeyso si ka duwan oo ay u qabato "@" sidoo kale. Si aad uga takhalusto, waxaad ka saari kartaa jilaha ugu horreeya natiijada adiga oo ku beddelaya xadhig madhan.
=REPLACE(RegExpExtract(A5, "@([a-z\d][a-z\d\-\.]*\.[a-z]{2,})", 1, FALSE), 1, 1, "")
Sida caadiga ah si aad u soo saarto lambarrada taleefannada
>Lambarada taleefanka waxaa loo qori karaa siyaabo badan oo kala duwan, taas oo ah sababta ay ku xigta in aan macquul ahayn in la keeno xal ka shaqeeya hoostiisa oo dhan(\d{4}laga bilaabo string >Oraahda caadiga ah ee soo saarista taariikhda waxay kuxirantahay qaabka ay taarikhdu uga dhex muuqato xarig. Tusaale ahaan:
Si loo soo saaro taariikhaha sida 1/1/21 ama 01/01/2021, regex waa: \d{1,2}\/\d{1,2}\/(\d {4}duruufaha. Si kastaba ha ahaatee, waxaad qori kartaa dhammaan qaababka loo isticmaalo xogtaada oo aad isku daydo inaad la mid noqoto.
Tusaale ahaan, waxaanu samaynaynaa regex kaas oo soo saari doona lambarada telefoonada qaab kasta oo ka mid ah:
(123) 345-6789 (123) 345 6789 (123)3456789 123- 345-6789 | >> 31>
- >
- Qaybta kowaad \(?\d{3} waxay u dhigantaa eber ama hal khaanad furitaanka oo ay ku xigto saddex lambar d{3}.
- Qaybta [-\. \)]* waxa ay la macno tahay xaraf kasta oo ka mid ah xargaha labajibbaaran ee soo muuqda 0 ama ka badan: jihaynta, muddada, meel bannaan ama xidhidhaynta jiir kasta, muddo ama meel bannaan [-\. ]? soo muuqda 0 ama 1 mar.
- Intaa dabadeed, waxaa jira koox afar nambar ah \d{4}.
- Ugu dambayntii, waxa jira xuduud kelmad \b oo qeexaysa in nambarka telefoonka aanu nahay Raadinta ma noqon karto qayb ka mid ah tiro ka weyn. > 5>
Qaabka dhammaystiran ayaa sidan u samaysan:
=RegExpExtract(A5, "\(?\d{3}[-\. \)]*\d{3}[-\. ]?\d{4}\b")
>Fadlan la soco in regex-ka sare uu soo noqon karo dhowr Natiijooyinka been-abuurka ah sida 123) 456 7899 ama (123 456 7899. Nuqulka hoose ayaa hagaajinaya arrimahan. Si kastaba ha ahaatee, syntaxkani wuxuu ka shaqeeyaa oo kaliya hawlaha VBA RegExp, ma aha tibaaxaha caadiga ah ee caadiga ah.
Qaabka : (\(\d{3}\)soo saarista qoraalka u dhexeeya labada xaraf waxay sidoo kale ka shaqayn doontaa soo saarista qoraalka u dhexeeya labada xadhig.
Tusaale ahaan, si aad u hesho wax kasta oo u dhexeeya "tijaabo 1" iyo "tijaabo 2", isticmaal tibaaxaha soo socda ee caadiga ah.
Qaabka : Tijaabada 1
Xitaa odhaahyada caadiga ah, ka soo saarista magacyada domain URL-yada maaha hawl fudud. Waxyaabaha ugu muhiimsan ee sameeya khiyaamada waa kooxaha aan gacanta ku dhigin. Iyadoo ku xiran hadafkaaga kama dambaysta ah, dooro mid ka mid ah regexesyada hoose.
Si aad u hesho magac domain oo buuxa oo ay ku jiraan subdomains
>Qaabka : (?: https?\: