Mantsoe a Tloaelehileng (RegExp) ho Potso ea Matla

Haeba bonyane u tloaelane le lipolelo tse tloaelehileng, ha ho hlokahale hore u li bapatse. Haeba ha o so ka o le tabeng, joale lipoleloana tse tloaelehileng (Regular Expressions = RegExp = "regexps" = "regulars") ke puo eo ho eona, ho sebelisoa litlhaku tse khethehileng le melao, li-substrings tse hlokahalang li batloang mongolong, li ntšoa. kapa ho nkeloa sebaka ke mongolo o mong . Sena ke sesebelisoa se matla haholo le se setle, taelo ea boholo bo fetang mekhoa e meng eohle ea ho sebetsa ka mongolo.

Ke se ke hlalositse ka botlalo le ka mehlala e mengata ea bophelo kamoo u ka eketsang tšehetso ea kamehla ea polelo ho Excel u sebelisa li-macros tse bonolo - haeba u sa bala sehlooho sena, ke khothaletsa haholo hore u se bale pele u tsoela pele. U tla fumana lintho tse ngata tse ncha, kea u tiisetsa 🙂

Leha ho le joalo, potso e ntse e bulehile - mokhoa oa ho eketsa bokhoni ba ho sebelisa lipolelo tse tloaelehileng ho Power Query? Power Query, ha e le hantle, e ntle ka boeona 'me e ka etsa ho hongata ka mongolo (ho khaola, ho khomarela, ho hloekisa, joalo-joalo), empa haeba u ka e tšela ka matla a lipolelo tse tloaelehileng, e ka ba bomo feela.

Ka bomalimabe, ha ho na mesebetsi e hahelletsoeng ka hare bakeng sa ho sebetsa le RegExps ho Power Query, mme thuso ea semmuso ea Microsoft le tšehetso ea tekheniki li araba potso ena ka tsela e mpe. Leha ho le joalo, ho na le mokhoa oa ho potoloha moeli ona 🙂

Bohlokoa ba mokhoa ona

Taba ea mantlha e bonolo ho hlabisa lihlong.

Lethathamong la bokhoni bo hahiloeng ka Power Query, ho na le ts'ebetso Leqephe la tepo. Tlhaloso ea ts'ebetso ena setšeng sa thuso sa Microsoft e nepahetse haholo:

Mantsoe a Tloaelehileng (RegExp) ho Potso ea Matla

E fetoletsoe, sena e tla ba: "E khutlisetsa litaba tsa tokomane ea HTML e arotsoeng ka likarolo tsa eona, hammoho le setšoantšo sa tokomane e feletseng le 'mele oa eona ka mor'a hore li-tag li tlosoe." Ka hona tlhaloso, ka 'nete.

Hangata ts'ebetso ena e sebelisoa ha o kenya data ho tsoa ho webosaete mme e nkeloa sebaka ka bo eona, mohlala, ha re khetha ho tab. Lintlha taelo Ho tsoa Inthaneteng (Boitsebiso - Ho tsoa tepong). Re fa mosebetsi leqephe la webo e le khang, 'me e khutlisetsa litaba tsa eona ho rona ka mokhoa oa litafole, e se e hlakisitse li-tag tsohle pele.

Seo thuso HA e se bue ke hore ntle le puo ea HTML markup mosebetsi Leqephe la tepo e tšehetsa mongolo oa JavaScript, eo hona joale e leng teng hohle liwebsaeteng tsa Inthanete. Mme JavaScript haesale e khona ho sebetsa ka mantsoe a tloaelehileng mme e na le mesebetsi e hahelletsoeng ka hare ho RegExps! Kahoo ho kenya ts'ebetsong lipolelo tse tloaelehileng ho Power Query, re tla hloka ho fepa Web.Page mesebetsi e le khang ho lenaneo le lenyenyane la JavaScript le tla etsa mosebetsi oohle oa Power Query.

E shebahala joang ho JavaScript e hloekileng

Ho na le lithupelo tse ngata tse qaqileng mabapi le ho sebetsa ka mantsoe a tloaelehileng ho JavaScript inthaneteng (mohlala, e le 'ngoe, tse peli).

Ka bokhutšoanyane le ka mokhoa o nolofalitsoeng, khoutu ea JavaScript e tla shebahala tjena:

Mantsoe a Tloaelehileng (RegExp) ho Potso ea Matla

Mona:

  • var str = 'Lefa likoloto 123 le 789 bakeng sa boroso'; – theha phetoho str ebe u e abela mohloli oa mongolo oo re tla o hlahloba.
  • var pattern = /d+/gi; - theha polelo e tloaelehileng 'me u e behe ka mokhoa o fapaneng mohlala.

    Polelo ena e qala ka ho rema (/).

    Polelo ka boeona mona, mohlala, ke d+ e emetse tatellano efe kapa efe ya dinomoro.

    Ka karoloana ka mor'a polelo, ho na le liparamente tse ling tsa patlo (li-modifiers) - li ka hlalosoa ka tatellano efe kapa efe:

    • g - ho bolela ho batla lefatšeng ka bophara, ke hore, ka mor'a ho fumana papali, ha ua lokela ho emisa, empa u tsoele pele ho batla ho fihlela qetellong ea mongolo. Haeba phetoho ena e sa hlophisoa, sengoloa sa rona se tla khutlisa papali ea pele feela (123)
    • i – batla ntle le taba ya mangolo
    • m - patlo ea mela e mengata (e sebelisoa ha mongolo oa mohloli o arotsoe ka mela e mengata)
  • var result = str.match(pattern).join(';'); - etsa patlisiso ho mongolo oa mohloli (str) ka polelo e tloaelehileng e fanoeng (mohlala) ebe o beha liphetho ho feto-fetoha sephetho, ho li kopanya le semicolon ho sebelisa taelo Kena
  • tokomane.ngola(sephetho); – hlahisa dikahare tsa phapang ya sephetho

Hape hlokomela hore likhoele tsa mongolo (ntle le mantsoe a tloaelehileng) ho JavaScript li kentsoe ka har'a li-apostrophe, eseng mantsoe a qotsitsoeng joalo ka ha a le ho Power Query kapa VBA.

Ka tlhahiso, sengoloa sena se tla re fa ka lebaka leo linomoro tsohle tse fumanoang mohloling oa mohloli:

123, 789

Koetliso e khutšoanyane ea JavaScript e felile, kea leboha bohle. Kea ts'epa hore u tla fumana logic 🙂

E sala ho fetisetsa mohaho ona ho Power Query.

Batla le ho Ntša Mosebetsi oa Sengoloa ka Polelo ea Kamehla ho Potso ea Matla

Re etsa tse latelang:

1. Bula Excel 'me u thehe Potso e ncha ea Matla ka har'a tab Lintlha - Fumana data / Etsa kopo - Ho tsoa mehloling e meng - Kopo e se nang letho (Data - Fumana data / potso e ncha - Ho tsoa mehloling e meng - Potso e se nang letho). Haeba u na le mofuta oa khale oa Excel 2010-2013 le Power Query eo u sa e hahang, empa e kentsoe joalo ka kenyelletso e arohaneng, joale sena sohle se tla ba ho tab. Potso ea MatlaEseng joalo Lintlha.

2. Fesetereng e se nang letho ea mohlophisi oa potso e bulang, ka phanele e nepahetseng, hang-hang kenya lebitso la ts'ebetso ea rona ea kamoso (mohlala, fxRegExpExtract)

Mantsoe a Tloaelehileng (RegExp) ho Potso ea Matla

3. Ha re ee ho tab Sheba – Sehlophisi se tsoetseng pele (Sheba - Sehlophisi se tsoetseng pele), re hlakola M-khoutu eohle ea kopo e se nang letho ebe re beha khoutu ea mosebetsi oa rona o moholo moo:

Mantsoe a Tloaelehileng (RegExp) ho Potso ea Matla

Sheba matsoho a hau:

Moleng oa pele, re re mosebetsi oa rona o tla ba le likhang tse tharo tsa mongolo: txt – sengolwa sa mathomo se ntse se sekasekiwa, regex - mokhoa o tloaelehileng oa polelo, qetella — tlhaku e lekanyang bakeng sa ho hlahisa sephetho.

E latelang re bitsa mosebetsi Leqephe la tepo, ho etsa khoutu ea JavaScript e hlalositsoeng ka holimo ka khang ea eona. Re beha le ho beha mabaka a rona a feto-fetohang sebakeng sa khoutu.

Sekhechana:

[Boitsebiso]{0}[Bana]{0}[Bana]{1}[Mongolo]{0}

… hoa hlokahala ho "oela" ka har'a tafole ka liphetho tseo re li hlokang. Taba ke hore mosebetsi Leqephe la tepo ka lebaka leo, e hlahisa litafole tse 'maloa tsa sehlaha tse phetang sebopeho sa leqephe la webo. Ntle le sekhechana sena sa M-code, mosebetsi oa rona o ne o tla hlahisa sena:

Mantsoe a Tloaelehileng (RegExp) ho Potso ea Matla

… 'me re tla tlameha ho tobetsa lentsoe ka makhetlo a mangata Lethathamo, ka tatellano “a oela” ka har’a litafole tse ahelletsoeng ke bana ka likholomo Bana:

Mantsoe a Tloaelehileng (RegExp) ho Potso ea Matla

Sebakeng sa qotsulo ena kaofela, hang-hang re bonts'a khoutu ea ts'ebetso ea rona e behiloeng tafoleng le kholomo (Text) re hloka.

Mona, ha e le hantle, ke liphiri tsohle. E sala ho tobetsa konopo fihlela qetellong fensetereng mohlophisi e tsoetseng pele, moo re kentseng khoutu ea rona, 'me u ka tsoela pele ho monate ka ho fetisisa - leka mosebetsi oa rona mosebetsing.

Mehlala e 'meli ea peo ke ena.

Mohlala 1. Ho fumana nomoro ea akhaonto le letsatsi ho tsoa tlhaloso ea tefo

Re na le setatemente sa banka se nang le tlhaloso (morero) oa litefo, moo o hlokang ho ntša linomoro le matsatsi a li-invoice tse lefelloang ka mela e arohaneng:

Mantsoe a Tloaelehileng (RegExp) ho Potso ea Matla

Re kenya tafole ho Power Query ka tsela e tloaelehileng Lintlha - Ho tsoa ho Tafole / Range (Lintlha - Ho tsoa ho Tkhona/Rangel).

Ebe re eketsa kholomo e baloang ka mosebetsi oa rona ka Eketsa Column - Call Custom Function (Eketsa Kholomo - Kopa Mosebetsi o Tloaelehileng) mme o kenye mabaka a yona:

Mantsoe a Tloaelehileng (RegExp) ho Potso ea Matla

Joalo ka polelo e tloaelehileng (khang regex) template eo re e sebelisang:

(d{3,5}|d{2}.d{2}.d{4})

… e fetoletsoe ho moelelo oa puo ea batho: 

linomoro ho tloha ho linomoro tse 3 ho isa ho tse 5 (linomoro tsa ak'haonte)

or

likhechana tsa foromo "2-bit number - point - 2-bit number - point - 4-bit number", ke hore, matsatsi a foromo DD.MM.YYYY.

Joalo ka sebapali sa delimiter (khang qetella) kenya semikholone.

Ka mor'a ho tobetsa OK ts'ebetso ea rona ea boselamose e sekaseka lintlha tsohle tsa pele ho latela polelo ea rona e tloaelehileng mme e re etsetsa kholomo ka linomoro tse fumanoeng le matsatsi a li-invoice:

Mantsoe a Tloaelehileng (RegExp) ho Potso ea Matla

E sala ho e arola ka semicolon ho sebelisa taelo Lehae — Arola Kholomo — Ka Delimiter (Lehae - Arola kholomo - Ka mohatelli) mme re fumana seo re se batlang:

Mantsoe a Tloaelehileng (RegExp) ho Potso ea Matla

Botle!

Mohlala 2: Ntša liaterese tsa lengolo-tsoibila ho tsoa mongolong

Ha re re re na le tafole e latelang e le data ea pele:

Mantsoe a Tloaelehileng (RegExp) ho Potso ea Matla

... ho tloha moo re hlokang ho hula liaterese tsa lengolo-tsoibila tse fumanoeng moo (bakeng sa ho hlaka, ke li totobalitse ka bofubelu temaneng).

Joalo ka mohlala o fetileng, re kenya tafole ho Power Query ka tsela e tloaelehileng ka Lintlha - Ho tsoa ho Tafole / Range (Lintlha - Ho tsoa ho Tkhona/Rangel).

Ebe re eketsa kholomo e baloang ka mosebetsi oa rona ka Eketsa Column - Call Custom Function (Eketsa Kholomo - Kopa Mosebetsi o Tloaelehileng) mme o kenye mabaka a yona:

Mantsoe a Tloaelehileng (RegExp) ho Potso ea Matla

Ho etsa liaterese tsa lengolo-tsoibila ke mosebetsi o boima le ho feta mme ho na le letšoele la mantsoe a tloaelehileng a maemo a fapaneng a litoro tse tšosang ho e rarolla. Ke sebelisitse e 'ngoe ea likhetho tse bonolo - e seng hantle, empa e sebetsa maemong a mangata:

[w|.|-]*@w*.[w|.]*

E le karohano (qetella) o ka kenya semikholone le sebaka.

Tobetsa ho OK 'me re fumana kholumo e nang le liaterese tsa lengolo-tsoibila tse nkiloeng ho "porridge" ea mantlha:

Mantsoe a Tloaelehileng (RegExp) ho Potso ea Matla

Boselamose!

PS

Joalokaha maele a bolela: “Ha ho ntho e ntle joalo e neng e ke ke ea ntlafatsoa le ho feta.” Power Query e pholile ka boeona, 'me ha e kopantsoe le lipolelo tse tloaelehileng, e re fa matla a sa utloahaleng ka ho feletseng le ho fetoha ha maemo ha ho sebetsanoa le data leha e le efe ea mongolo. Ke tšepa hore ka letsatsi le leng Microsoft e tla eketsa tšehetso ea RegExp ho Power Query le lintlafatso tsa Power BI mme metjeko eohle e kaholimo e nang le moropa e tla fetoha ntho ea khale. Ho lokile, hajoale, ho joalo.

Ke boetse ke batla ho kenyelletsa hore ho bonolo ho bapala ka mantsoe a tloaelehileng sebakeng sa marang-rang https://regexr.com/ - hantle ho mohlophisi oa inthaneteng. Teng karolong Mekhoa ea Sechaba Ho na le palo e kholo ea linako tsa selemo tse lokiselitsoeng bakeng sa liketsahalo tsohle. Teko - matla ohle a mantsoe a tloaelehileng a se a le ts'ebeletso ea hau ho Power Query!

  • Lipolelo tse tloaelehileng (RegExp) ke life le mokhoa oa ho li sebelisa ho Excel
  • Patlisiso e makatsang ea mongolo ho Power Query
  • Ho bokella litafole ho tsoa lifaeleng tse fapaneng ho sebelisoa Power Query

Leave a Reply