Hlalosa mongolo ka lipolelo tse tloaelehileng (RegExp) ho Excel

Hlalosa mongolo ka lipolelo tse tloaelehileng (RegExp) ho ExcelE 'ngoe ea mesebetsi e jang nako le e ferekanyang haholo ha u sebetsa ka mongolo ho Excel ke parsing - ho arola "porridge" ea alphanumeric ka likarolo le ho ntša likhechana tseo re li hlokang ho eona. Ka mohlala:

  • ho ntša khoutu ea poso atereseng (ho molemo haeba zip code e lula e le qalong, empa ho thoe'ng haeba e se eona?)
  • ho fumana nomoro le letsatsi la invoice ho tsoa tlhalosong ea tefo setatementeng sa banka
  • ho ntšoa ha TIN ho tsoa litlhalosong tsa motley tsa lik'hamphani tse lethathamong la li-counterparties
  • batla nomoro ea koloi kapa nomoro ea sehlooho tlhalosong, joalo-joalo.

Hangata maemong a joalo, kamora halofo ea hora ea ho khetha mongolo ka letsoho, mehopolo e qala ho tla kelellong ka mokhoa o itseng oa ho iketsetsa ts'ebetso ena (haholo-holo haeba ho na le data e ngata). Ho na le litharollo tse 'maloa' me li na le maemo a fapaneng a ho rarahana:

  • tshebediso mesebetsi ea mongolo e hahiloeng ka har'a Excel ho batla-cut-glued text: LEVSIMV (LEFI), NEPAHETSENG (TOKELO), PSTR (bohareng), STsEPIT (CONCATENATE) le lipapiso tsa eona, KOPANE (JOINTEXT), LEHLOHONOLO (HAKOLO) joalo-joalo Mokhoa ona o molemo haeba ho na le logic e hlakileng temaneng (mohlala, index e lula e le qalong ea aterese). Ho seng joalo, liforomo li fetoha tse rarahaneng le ho feta, ka linako tse ling, li bile li tla le mefuta e mengata, e fokotsang haholo litafoleng tse kholo.
  • U sebelisa joalo ka molaoli oa ho tšoana ha mongolo ho tloha ho Visual Basic e phuthetsoe ka ts'ebetso e tloaelehileng ea macro. Sena se o nolofalletsa ho kenya ts'ebetsong patlisiso e feto-fetohang ka ho sebelisa litlhaku tsa wildcard (*, #,?, joalo-joalo) Ka bomalimabe, sesebelisoa sena se ke ke sa ntša karoloana e lakatsehang ho tsoa mongolong - hlahloba feela hore na e teng ho eona.

Ho phaella ho tse ka holimo, ho na le mokhoa o mong o tsejoang haholo ka lihlopha tse moqotetsane tsa baetsi ba litsebi, baetsi ba marang-rang le mekhoa e meng ea theknoloji - sena ke mantsoe a tloaelehileng (Regular Expressions = RegExp = “regexps” = “regulars”). Ka mantsoe a bonolo feela, RegExp ke puo eo ho eona ho sebelisoang litlhaku le melao e khethehileng ho batla li-substrings tse hlokahalang temaneng, ho li ntša kapa ho li nkela sebaka ka mongolo o mong.. Lipolelo tse tloaelehileng ke sesebelisoa se matla haholo ebile se setle se fetang mekhoa e meng eohle ea ho sebetsa ka mongolo ka tatellano ea boholo. Lipuo tse ngata tsa lenaneo (C#, PHP, Perl, JavaScript…) le bahlophisi ba mongolo (Lentsoe, Notepad++…) li tšehetsa lipolelo tse tloaelehileng.

Microsoft Excel ka bomalimabe ha e na tšehetso ea RegExp ka ntle ho lebokose, empa sena se ka lokisoa habonolo ka VBA. Bula Visual Basic Editor ho tsoa ho tab Moqapi (Moetsi) kapa khaoletso ea keyboard Alt+F11. Ebe o kenya module e ncha ka har'a menu Kenya – Mojule 'me u kopitse mongolo oa tšebetso e latelang ea macro moo:

Public Function RegExpExtract(Text As String, Pattern As String, Optional Item As Integer = 1) As String On Error GoTo ErrHandl Set regex = CreateObject("VBScript.RegExp") regex.Pattern = Pattern regex.Global = 'Nete Haeba regex.Test (Mongolo) Ebe U Seta mechini = regex.Execute(Text) RegExpExtract = match.Item(Item - 1) Exit Function End If ErrHandl: RegExpExtract = CVERr(xlErrValue) End Function  

Joale re ka koala Visual Basic Editor ebe re khutlela Excel ho leka tšobotsi ea rona e ncha. Syntax ea eona ke e latelang:

=RegExpExtract(Txt; Paterone; Ntho)

moo

  • txt - sele e nang le mongolo oo re o hlahlobang le moo re batlang ho ntša substring eo re e hlokang
  • mohlala - mask (mohlala) bakeng sa patlo ea likhoele tse nyane
  • Item - nomoro ea tatellano ea substring e tla ntšoa, haeba ho na le tse 'maloa tsa tsona (haeba li sa hlalosoa, ketsahalo ea pele e tla hlaha)

Ntho e thahasellisang ka ho fetisisa mona, ha e le hantle, ke Mohlala - khoele ea template ea litlhaku tse khethehileng "ka puo" ea RegExp, e hlalosang hore na hantle-ntle re batla ho fumana eng. Mona ke tse bohlokoa haholo ho u qalisa:

 paterone  Tlhaloso
 . E bonolo ka ho fetisisa ke letheba. E ts'oara sebopeho sefe kapa sefe sa paterone sebakeng se boletsoeng.
 s Sebapali sefe kapa sefe se shebahalang joalo ka sebaka (sebaka, tab, kapa khefu ea mela).
 S
Khahlanong le phapang ea paterone e fetileng, ke hore tlhaku efe kapa efe e seng ea sebaka se sesoeu.
 d
Nomoro efe kapa efe
 D
Anti-phapang ea e fetileng, ke hore, leha e le efe NO digit
 w Mongolo ofe kapa ofe oa Selatine (AZ), digit, kapa underscore
 W Khahlanong le phapano ea e fetileng, ke hore, eseng Selatine, eseng palo ebile e se underscore.
[litlhaku] Ka masakaneng a lisekoere, o ka hlakisa tlhaku e le 'ngoe kapa ho feta tse lumelletsoeng sebakeng se boletsoeng sengolong. Ka mohlala Art e tla nyallana le lefe kapa lefe la mantsoe: tafoleng or setulo.

Hape u ke ke ua bala litlhaku, empa u li behe e le letoto le arohaneng ka lehokelo, ke hore sebakeng sa [ABDCDEF] ngola [AF]. kapa ho fapana le hoo [4567] Hlahisa [-4]. Mohlala, ho khetha litlhaku tsohle tsa Cyrillic, o ka sebelisa template [a-yaA-YayoYo].

[^litlhaku] Haeba ka mor'a lisekoere tse bulehileng, eketsa letšoao "sekoahelo" ^, joale sete se tla fumana moelelo o fapaneng - sebakeng se boletsoeng temaneng, litlhaku tsohle li tla lumelloa, ntle le tse thathamisitsoeng. E, template [^ЖМ] ut o tla fumana Tsela or Ntho or lebala, empa ha ho joalo Ho tšosoa or Mot, mohlala.
 | Mookameli oa Boolean OR (OR) ho hlahloba leha e le efe ea litekanyetso tse boletsoeng. Ka mohlala (kaThu|sesita|invoice) e tla batla mongolo bakeng sa leha e le efe ea mantsoe a boletsoeng. Ka tloaelo, sehlopha sa likhetho se kentsoe ka masakaneng.
 ^ Ho qala mohala
 $ Qetello ya mola
 b Qetello ya lentswe

Haeba re batla palo e itseng ea batho bao ho buuoang ka bona, mohlala, khoutu ea poso ea linomoro tse tšeletseng kapa litlhaku tse tharo tsa lihlahisoa, joale re tla thusa. li-quantifiers or li-quantifiers ke lipolelo tse khethehileng tse hlalosang palo ea litlhaku tse lokelang ho batloa. Li-quantifiers li sebelisoa ho sebopeho se tlang pele ho sona:

  Quantor  Tlhaloso
 ? Zero kapa ketsahalo e le 'ngoe. Ka mohlala .? e tla bolela mophetwa ofe kapa ofe kapa bosieo ba yona.
 + Kenyo e le 'ngoe kapa ho feta. Ka mohlala d+ e bolela palo efe kapa efe ya dinomoro (ke hore nomoro efe kapa efe pakeng tsa 0 le infinity).
 * Liketsahalo tsa Zero kapa ho feta, ke hore palo efe kapa efe. Kahoo s* e bolela palo efe kapa efe ya dibaka kapa ho se dibaka.
{palo} or

{palo1,palo2}

Haeba o hloka ho hlakisa palo e hlakileng ea liketsahalo, joale e hlalositsoe ka har'a li-curly braces. Ka mohlala d{6} e bolela ka tieo linomoro tse tšeletseng, le paterone s{2,5} – dibaka tse pedi ho isa ho tse hlano

Joale ha re tsoeleng pele ho karolo e khahlisang haholo - tlhahlobo ea ts'ebeliso ea ts'ebetso e entsoeng le seo re ithutileng sona ka lipaterone tsa mehlala e sebetsang ea bophelo.

Ho ntša linomoro ho tsoa mongolong

Ho qala, ha re hlahlobeng taba e bonolo - o hloka ho ntša nomoro ea pele ho tsoa ho poro ea alphanumeric, mohlala, matla a lisebelisoa tsa motlakase tse ke keng tsa senyeha ho tsoa lethathamong la theko:

Hlalosa mongolo ka lipolelo tse tloaelehileng (RegExp) ho Excel

Maikutlo a ka morao ho polelo e tloaelehileng e bonolo: d e bolela nomoro efe kapa efe, le quantifier + e re palo ea bona e lokela ho ba e le 'ngoe kapa ho feta. Ho tlosa habeli ka pele ho ts'ebetso hoa hlokahala ho "fofa" ho fetolela litlhaku tse ntšitsoeng ho palo e felletseng ho tsoa ho nomoro-joalo ka mongolo.

khoutu

Ha u sheba ka lekhetlo la pele, ntho e 'ngoe le e' ngoe e bonolo mona - re batla lipalo tse tšeletseng hantle ka tatellano. Re sebelisa tlhaku e khethehileng d bakeng sa digit le quantifier 6 {} bakeng sa palo ea litlhaku:

Hlalosa mongolo ka lipolelo tse tloaelehileng (RegExp) ho Excel

Leha ho le joalo, boemo bo ka khoneha ha, ka letsohong le letšehali la index moleng, ho na le palo e 'ngoe e kholo ea linomoro ka tatellano (nomoro ea mohala, TIN, akhaonto ea banka, joalo-joalo) Joale nako ea rona e tloaelehileng e tla ntša 6 ea pele ea XNUMX. linomoro ho tsoa ho eona, ke hore, e ke ke ea sebetsa hantle:

Hlalosa mongolo ka lipolelo tse tloaelehileng (RegExp) ho Excel

Ho thibela sena hore se se ke sa etsahala, re hloka ho kenya se feto-fetohang ho potoloha mathōko a polelo ea rona e tloaelehileng b e bontshang pheletso ya lentsoe. Sena se tla hlakisa ho Excel hore sekhechana (index) eo re e hlokang e lokela ho ba lentsoe le arohaneng, eseng karolo ea sekhechana se seng (nomoro ea mohala):

Hlalosa mongolo ka lipolelo tse tloaelehileng (RegExp) ho Excel

Phone

Bothata ba ho fumana nomoro ea mohala mongolong ke hore ho na le likhetho tse ngata haholo bakeng sa ho ngola linomoro - ka li-hyphens le ntle le li-hyphens, ka libaka, ka kapa ntle le khoutu ea sebaka ka masakaneng, joalo-joalo. Ka hona, ka maikutlo a ka, ho bonolo ho Hlakola pele litlhaku tsena kaofela ho tsoa mohloling o sebelisa mesebetsi e mengata e behiloeng MOTLATSI SEKONYELA (SUBSTITUTE)e le hore e khomarele hammoho ho ba ntho e le 'ngoe, ebe ka tloaelo ea khale d{11} ntša linomoro tse 11 ka tatellano:

Hlalosa mongolo ka lipolelo tse tloaelehileng (RegExp) ho Excel

ITN

Ho rarahane ho feta mona, hobane TIN (Naheng ea Rona) e ka ba linomoro tse 10 (bakeng sa mekhatlo ea molao) kapa linomoro tse 12 (bakeng sa batho ka bomong). Haeba u sa fumane phoso ka ho khetheha, joale ho ka khoneha hore u khotsofatsoe ke kamehla d{10,12}, empa, ha e le hantle, e tla ntša linomoro tsohle ho tloha ho litlhaku tse 10 ho isa ho tse 12, ke hore, 'me e kentse linomoro tse 11 ka phoso. Ho ka ba ho nepahetseng ho sebelisa mekhoa e 'meli e hokahaneng ke motho ea nang le kelello OR opareitara | (thepa e otlolohileng):

Hlalosa mongolo ka lipolelo tse tloaelehileng (RegExp) ho Excel

Ka kopo hlokomela hore potsong re qala ka ho batla linomoro tsa 12-bit, 'me ka mor'a moo re batla linomoro tsa 10-bit. Haeba re ngola polelo ea rona e tloaelehileng ka tsela e fapaneng, joale e tla hohela motho e mong le e mong, esita le li-TIN tse telele tsa 12-bit, litlhaku tse 10 feela tsa pele. Ke hore, ka mor'a hore boemo ba pele bo qale, ho netefatsa ho eketsehileng ha ho sa etsoa:

Hlalosa mongolo ka lipolelo tse tloaelehileng (RegExp) ho Excel

Ena ke phapang ea mantlha lipakeng tsa opareitara | ho tsoa ho ts'ebetso e tloaelehileng ea logic ea Excel OR (OR), moo ho hlophisa likhang ho sa fetole sephetho.

Lihlahisoa tsa SKU

Lik'hamphaning tse ngata, li-identifiers tse ikhethang li abeloa thepa le litšebeletso - lihlooho, SAP codes, SKUs, joalo-joalo Haeba ho na le logic ho notation ea bona, joale li ka ntšoa habonolo ho tsoa mongolong leha e le ofe ho sebelisa lipolelo tse tloaelehileng. Mohlala, haeba re tseba hore lingoliloeng tsa rona li lula li na le litlhaku tse tharo tsa Senyesemane, hyphen le nomoro e latelang ea linomoro tse tharo, joale:

Hlalosa mongolo ka lipolelo tse tloaelehileng (RegExp) ho Excel

The logic ka mor'a template e bonolo. [AZ] - e bolela litlhaku tse kholo tsa alfabeta ea Selatine. Ea latelang quantifier 3 {} e re ke habohlokoa ho rona hore ho na le mangolo a joalo a mararo hantle. Ka mor'a hyphen, re emetse linomoro tse tharo, kahoo re eketsa qetellong d{3}

Chelete ea chelete

Ka mokhoa o ts'oanang le serapa se fetileng, o ka boela oa hula litheko (litšenyehelo, VAT ...) ho tsoa tlhalosong ea thepa. Haeba chelete, mohlala, e bonts'oa ka hyphen, joale:

Hlalosa mongolo ka lipolelo tse tloaelehileng (RegExp) ho Excel

paterone d e nang le quantifier + e batla nomoro efe kapa efe ho fihla ho hyphen, le d{2} e tla batla lipeni (lintlha tse peli) kamora.

Haeba u hloka ho ntša, eseng litheko, empa VAT, joale u ka sebelisa ntlha ea boraro ea boikhethelo ea mosebetsi oa rona oa RegExpExtract, e hlalosang nomoro ea ordinal ea element e tla ntšoa. 'Me, ha e le hantle, u ka nka sebaka sa ts'ebetso MOTLATSI SEKONYELA (SUBSTITUTE) liphethong, khokahanyo ho mokhethoa o tloaelehileng oa decimal 'me u kenye ho tlosa habeli qalong e le hore Excel e toloke VAT e fumanoeng e le nomoro e tloaelehileng:

Hlalosa mongolo ka lipolelo tse tloaelehileng (RegExp) ho Excel

Linomoro tsa poleiti ea koloi

Haeba u sa nke likoloi tse khethehileng, li-trailer le lithuthuthu tse ling, joale nomoro e tloaelehileng ea koloi e aroloa ho ea ka molao-motheo "lengolo - linomoro tse tharo - litlhaku tse peli - khoutu ea sebaka". Ho feta moo, khoutu ea sebaka e ka ba linomoro tse 2 kapa tse 3, 'me ke tse tšoanang feela ka ponahalo ea alfabeta ea Selatine tse sebelisoang e le litlhaku. Kahoo, polelo e latelang e tloaelehileng e tla re thusa ho ntša linomoro temaneng:

Hlalosa mongolo ka lipolelo tse tloaelehileng (RegExp) ho Excel

Time

Ho ntša nako ka sebopeho sa HH:MM, polelo e latelang e tloaelehileng e loketse:

Hlalosa mongolo ka lipolelo tse tloaelehileng (RegExp) ho Excel

Ka mor'a sekhechana sa colon [0-5]lets, joalo ka ha ho le bonolo ho e tseba, e beha nomoro efe kapa efe sebakeng sa 00-59. Pele ho kolone ka masakaneng, mekhoa e 'meli e sebetsa, e arohanngoa ke OR (pipe) e utloahalang:

  • [0-1]lets - nomoro efe kapa efe ho tloha 00-19
  • 2[0-3] - nomoro efe kapa efe ho tloha 20-23

Ho sephetho se fumanoeng, o ka sebelisa ts'ebetso e tloaelehileng ea Excel NAKO (TEAM)ho e fetolela ho sebopeho sa nako se utloisisehang lenaneong le se loketseng lipalo tse ling.

Hlahloba phasewete

Ha re re re hloka ho hlahloba lenane la li-password tse qapiloeng ke basebelisi bakeng sa ho nepahala. Ho ea ka melao ea rona, li-passwords li ka ba le litlhaku tsa Senyesemane feela (litlhaku tse nyane kapa tse kholo) le linomoro. Libaka, li-underscore le matšoao a mang ha lia lumelloa.

Ho hlahloba ho ka hlophisoa ho sebelisoa polelo e bonolo e tloaelehileng e latelang:

Hlalosa mongolo ka lipolelo tse tloaelehileng (RegExp) ho Excel

Ebile, ka mohlala o joalo re hloka hore lipakeng tsa qalo (^) le qetellong ($) mongolong oa rona ho ne ho e-na le litlhaku feela tse tsoang sehlopheng se fanoeng ka masakaneng a lisekoere. Haeba u boetse u hloka ho hlahloba bolelele ba password (mohlala, bonyane litlhaku tse 6), joale quantifier + e ka nkeloa sebaka ke nako ea "tšelela kapa ho feta" ka foromo {6,}:

Hlalosa mongolo ka lipolelo tse tloaelehileng (RegExp) ho Excel

Motse ho tloha atereseng

Ha re re re hloka ho hula toropo ho tloha sebakeng sa aterese. Lenaneo le tloaelehileng le tla thusa, ho ntša mongolo ho "g." ho phegelwana e latelang:

Hlalosa mongolo ka lipolelo tse tloaelehileng (RegExp) ho Excel

A re hlahlobeng paterone ena ka hloko.

Haeba u balile temana e ka holimo, joale u se u ntse u utloisisa hore litlhaku tse ling tsa lipolelo tse tloaelehileng (linako, linaleli, matšoao a dollar, joalo-joalo) li na le moelelo o khethehileng. Haeba u hloka ho batla batho bana ka bobona, joale ba etelloa pele ke backslash (eo ka linako tse ling e bitsoang ho sirelletsa). Ka hona, ha u batla sekhechana sa "g". re tlameha ho ngola ka mokhoa o tloaelehileng Monghali. haeba re batla ho kopanya, joale + joalo-joalo

Litlhaku tse peli tse latelang templateng ea rona, letheba le naleli ea quantifier, li emela palo efe kapa efe ea litlhaku, ke hore, lebitso lefe kapa lefe la toropo.

Ho na le phegelwana qetellong ya template, hobane re batla mongolo ho tswa ho “g.” ho phehela. Empa ho ka ba le diphegelwana tse mmalwa temaneng, ho nepahetse? Eseng feela ka mor'a motse, empa hape le ka mor'a seterata, matlo, joalo-joalo. Ke efe ho tsona e tla emisa kopo ea rona? Ke seo letšoao la potso le leng sona. Ntle le eona, polelo ea rona e tloaelehileng e ka ntša khoele e telele ka ho fetisisa e ka khonehang:

Hlalosa mongolo ka lipolelo tse tloaelehileng (RegExp) ho Excel

Mabapi le lipolelo tse tloaelehileng, mohlala o joalo ke "meharo". Ho lokisa boemo, ho hlokahala letshwao la potso - le etsa hore "quantifier" ka mor'a moo e eme e "nyonyelletsa" - 'me potso ea rona e isa mongolo ho feheloa ea pele ka mor'a "g."

Hlalosa mongolo ka lipolelo tse tloaelehileng (RegExp) ho Excel

Filename ho tloha tseleng e felletseng

Boemo bo bong bo tloaelehileng haholo ke ho ntša lebitso la faele tseleng e felletseng. Tlhaloso e bonolo ea kamehla ea foromo e tla thusa mona:

Hlalosa mongolo ka lipolelo tse tloaelehileng (RegExp) ho Excel

Leqheka mona ke hore ho batla, ha e le hantle, ho etsahala ka lehlakoreng le leng - ho tloha qetellong ho ea qalong, hobane qetellong ea template ea rona ke. $, 'me re batla ntho e' ngoe le e 'ngoe pele e fihla ho backslash ea pele ho tloha ka ho le letona. Ho phonyoha ha morao, joalo ka letheba le hlahang mohlaleng o fetileng.

PS

"Ho ea qetellong" ke batla ho hlakisa hore tsohle tse ka holimo ke karolo e nyenyane ea menyetla eohle eo lipolelo tse tloaelehileng li fanang ka tsona. Ho na le batho ba bangata ba khethehileng le melao bakeng sa tšebeliso ea bona, 'me libuka tsohle li ngotsoe sehloohong sena (ke khothaletsa bonyane sena hore se qale). Ka tsela e itseng, ho ngola lipolelo tse tloaelehileng e batla e le bonono. Hoo e ka bang ka linako tsohle, polelo e tloaelehileng e iqapetsoeng e ka ntlafatsoa kapa ea tlatselletsoa, ​​ea etsa hore e be bokhabane kapa e khone ho sebetsa ka mefuta e mengata e fapaneng ea lintlha tse kentsoeng.

Ho sekaseka le ho bapisa mantsoe a tloaelehileng a batho ba bang kapa ho lokisa liphoso tsa hau, ho na le litšebeletso tse 'maloa tse fumanehang marang-rang: RegEx101, Boemo bo ka Sehloohong le tse ling

Ka bomalimabe, ha se likarolo tsohle tsa mantsoe a tloaelehileng a tloaelehileng a tšehetsoeng ho VBA (mohlala, ho batla morao kapa lihlopha tsa POSIX) 'me li ka sebetsa le Cyrillic, empa ke nahana hore se teng se lekane ho u khahlisa ka lekhetlo la pele.

Haeba ha u mocha ho sehlooho, 'me u na le seo u ka se arolelanang, tlohela lipolelo tse tloaelehileng li le molemo ha u sebetsa Excel ho maikutlo a ka tlase. Kelello e le 'ngoe e ntle, empa lieta tse peli ke para!

  • Ho fetola le ho hloekisa mongolo ka tšebetso ea SUBSTITUTE
  • Batla le ho totobatsa litlhaku tsa Selatine ka mongolo
  • Batla mongolo o haufi o tšoanang (Ivanov = Ivonov = Ivanof, joalo-joalo)

Leave a Reply