Manaova lahatsoratra miaraka amin'ny fiteny mahazatra (RegExp) amin'ny Excel

Manaova lahatsoratra miaraka amin'ny fiteny mahazatra (RegExp) amin'ny ExcelNy iray amin'ireo asa mandany fotoana sy mahasosotra indrindra rehefa miasa amin'ny lahatsoratra amin'ny Excel dia parsing - famafazana ny "porridge" alfanumerika ho singa ary alaina ny sombiny ilaina amin'izany. Ohatra:

  • ny fakana ny code poste amin'ny adresse (tsara raha eo am-piandohana foana ny code poste fa ahoana raha tsy izany?)
  • fitadiavana ny isa sy ny datin'ny faktiora avy amin'ny famaritana ny fandoavam-bola ao amin'ny banky
  • fanesorana ny TIN avy amin'ny famaritana motley ny orinasa ao amin'ny lisitry ny mpiara-miasa
  • mitady laharan'ny fiara na laharan'ny lahatsoratra ao amin'ny famaritana, sns.

Matetika amin'ny toe-javatra toy izany, aorian'ny antsasak'adiny amin'ny fakana sary an-tsaina ny lahatsoratra amin'ny tanana, dia manomboka tonga ao an-tsaina ny eritreritra amin'ny fomba manara-penitra an'io dingana io (indrindra raha misy angon-drakitra be dia be). Misy vahaolana maromaro ary misy ambaratonga samihafa amin'ny fahombiazan'ny fahasarotana:

  • Use naorina-in Excel asa soratra hikaroka lahatsoratra amin'ny lakaoly tapaka: LEVSIMV (Havia), TSARA (AZONY), PSTR (afovoany), STsEPIT (CONCATENATE) sy ny analogues, manambatra ny (JOINTEXT), marina (MARINA) sns. Tsara io fomba io raha misy lojika mazava ao amin'ny lahatsoratra (ohatra, ny index dia eo am-piandohan'ny adiresy foana). Raha tsy izany, ny formulas dia lasa sarotra kokoa ary, indraindray, tonga amin'ny array formulas, izay miadana be amin'ny latabatra lehibe.
  • mampiasa toy ny operator fitoviana lahatsoratra avy amin'ny Visual Basic nofonosina amin'ny fiasa macro mahazatra. Izany dia ahafahanao manatanteraka fikarohana mora kokoa amin'ny alàlan'ny tarehin-tsoratra wildcard (*, #,?, sns.) Indrisy fa tsy afaka manala ny zana-tsipìka tadiavina amin'ny lahatsoratra ity fitaovana ity - jereo fotsiny raha misy ao anatiny.

Ho fanampin'ireo voalaza etsy ambony ireo, dia misy fomba iray hafa izay fanta-daza amin'ny faribolana tery amin'ny programa matihanina, mpamorona tranonkala ary teknolojia hafa - izany fomba fiteny mahazatra (Fiteny mahazatra = RegExp = "regexps" = "mahazatra"). Raha tsorina, RegExp dia fiteny iray ampiasaina ny tarehin-tsoratra sy fitsipika manokana hitadiavana ireo zana-tsipika ilaina amin'ny lahatsoratra, hanesorana azy ireo na hanoloana azy amin'ny lahatsoratra hafa.. Ny fitenenana mahazatra dia fitaovana mahery vaika sy tsara tarehy izay mihoatra ny fomba hafa rehetra miasa amin'ny lahatsoratra amin'ny filaharana lehibe. Ny fiteny fandaharana maro (C#, PHP, Perl, JavaScript…) ary ny tonian-dahatsoratra (Word, Notepad++…) dia manohana ny fiteny mahazatra.

Indrisy fa tsy manana fanohanana RegExp ivelan'ny boaty ny Microsoft Excel, saingy azo amboarina mora amin'ny VBA izany. Sokafy ny Visual Basic Editor avy amin'ny tabilao Developer (mpamorona) na hitsin-dàlana fitendry Alt+F11. Ampidiro avy eo ny maody vaovao amin'ny alàlan'ny menio Ampidiro - Module ary adika ao ny lahatsoratr'ity macro ity:

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 = Marina Raha regex.Test (Text) Avy eo Mametraha matches = regex.Execute(Text) RegExpExtract = matches.Item(Item - 1) Exit Function End If ErrHandl: RegExpExtract = CVErr(xlErrValue) End Function  

Afaka manakatona ny Visual Basic Editor isika ary miverina amin'ny Excel hanandrana ny endritsika vaovao. Ny syntax azy dia izao:

=RegExpExtract( Txt ; Pattern ; Item )

izay

  • txt – sela misy ny lahatsoratra izay hojerentsika ary tiantsika ny hanalana ny zana-tsipika ilaintsika
  • lamina – saron-tava (lamina) ho an'ny fikarohana substring
  • Item - ny laharan'ny filaharan'ny zana-tsipìka alaina, raha maromaro izy ireo (raha tsy voafaritra dia aseho ny fisehoana voalohany)

Ny zavatra mahaliana indrindra eto, mazava ho azy, dia ny Pattern - tady modely misy tarehintsoratra manokana "amin'ny fiteny" an'ny RegExp, izay mamaritra hoe inona marina ary aiza no tiantsika ho hita. Ireto ny tena fototra hanombohana anao:

 Pattern  Description
 . Ny tsotra indrindra dia teboka. Mifanaraka amin'izay toetran'ny lamina amin'ny toerana voatondro izy io.
 s Ny endri-tsoratra rehetra toa ny habaka (espace, kiheba, na fiatoana andalana).
 S
Anti-variant amin'ny lamina teo aloha, izany hoe ny toetra tsy misy toerana fotsy.
 d
Misy isa
 D
Anti-variant amin'ny teo aloha, izany hoe TSY isa
 w Izay endri-tsoratra latinina (AZ), tarehimarika, na tsipiho
 W Anti-variant amin'ny teo aloha, izany hoe tsy latinina, tsy isa ary tsy underscore.
[tarehin-tsoratra] Ao amin'ny fononteny efajoro, azonao atao ny mamaritra tarehin-tsoratra iray na maromaro avela amin'ny toerana voatondro ao amin'ny lahatsoratra. Ohatra Art hifanaraka amin'ny iray amin'ireo teny: table or seza.

Tsy azonao atao koa ny mitanisa tarehin-tsoratra, fa apetraho ho isan-karazany misaraka amin'ny tsipika, izany hoe fa tsy [ABDCDEF] manoratra [AF]. na kosa [4567] mampahafantatra [-4 7]. Ohatra, mba hanondroana ny tarehintsoratra Cyrillic rehetra dia azonao ampiasaina ny môdely [a-yaA-YayoYo].

[^tarehin-tsoratra] Raha aorian'ny fonon'ny efamira fanokafana dia ampio ny marika "sarony" ^, dia hahazo ny dikany mifanohitra amin'izany ilay andiana – amin'ny toerana voatondro ao amin'ny lahatsoratra, dia avela ny tarehintsoratra rehetra, afa-tsy ireo voatanisa. Eny, môdely [^ЖМ]ut dia hahita Path or fananana or Adinoy, fa tsy mampatahotra or mut, oh.
 | Boolean operator OR (OR) hanamarina ny iray amin'ireo fepetra voafaritra. Ohatra (avy amin'nyThu|seven|faktiora) hikaroka ny lahatsoratra ho an'ny teny voafaritra. Amin'ny ankapobeny, misy andiana safidy dia voarakitra anaty fononteny.
 ^ Fiandohan'ny andalana
 $ Faran'ny andalana
 b Faran'ny teny

Raha mitady litera maromaro isika, ohatra, kaody paositra enina na kaody vokatra misy litera telo, dia tonga amin'ny famonjena. mpanisa or mpanisa dia fitenenana manokana izay mamaritra ny isan'ny litera hokarohina. Ny quantifiers dia ampiharina amin'ny toetra izay eo alohany:

  Quantor  Description
 ? Zero na tranga iray. Ohatra .? dia midika hoe toetra iray na tsy fisiany.
 + Lahatsoratra iray na maromaro. Ohatra d+ midika hoe isan'ny isa (izany hoe isa eo anelanelan'ny 0 sy ny tsy manam-petra).
 * Zero na mihoatra, izany hoe ny isa rehetra. Noho izany s* midika hoe isan'ny habaka na tsy misy habaka.
{isa} or

{isa1,isa2}

Raha toa ka mila mamaritra ny isan'ny fisehoan-javatra voafaritra tsara ianao, dia voatondro amin'ny braces olioly izany. Ohatra d{6} midika hoe isa enina tanteraka, ary ny lamina s{2,5} - toerana roa na dimy

Andeha isika hifindra any amin'ny ampahany mahaliana indrindra - famakafakana ny fampiharana ny asa noforonina sy ny zavatra nianarantsika momba ny modely amin'ny ohatra azo ampiharina amin'ny fiainana.

Fanalana isa amin'ny lahatsoratra

Hanombohana, andeha hojerentsika tranga tsotra – mila maka ny isa voalohany amin'ny lafarinina alphanumeric ianao, ohatra, ny herin'ny famatsiana herinaratra tsy tapaka avy amin'ny lisitry ny vidiny:

Manaova lahatsoratra miaraka amin'ny fiteny mahazatra (RegExp) amin'ny Excel

Tsotra ny lojika ao ambadiky ny fomba fiteny mahazatra: d midika isa isa, ary ny quantifier + milaza fa tokony ho iray na maromaro ny isan'izy ireo. Ny minus indroa eo anoloan'ny fiasa dia ilaina mba "amin'ny lalitra" hamadika ireo endri-tsoratra nalaina ho isa feno avy amin'ny isa-ho-soratra.

Postcode

Raha vao jerena dia tsotra ny zava-drehetra eto – isa enina misesy katroka no tadiavintsika. Mampiasa toetra manokana izahay d ho an'ny isa sy ny quantifier 6 {} ho an'ny isan'ny tarehintsoratra:

Manaova lahatsoratra miaraka amin'ny fiteny mahazatra (RegExp) amin'ny Excel

Na izany aza, ny toe-javatra iray dia azo atao rehefa, eo ankavia amin'ny index ao amin'ny andalana, dia misy laharana lehibe hafa misesy (numero an-telefaona, TIN, kaonty amin'ny banky, sns.) Avy eo, ny vanim-potoana mahazatra antsika dia hisintona ny 6 voalohany. isa avy aminy, izany hoe tsy mandeha tsara:

Manaova lahatsoratra miaraka amin'ny fiteny mahazatra (RegExp) amin'ny Excel

Mba hisorohana an'izany tsy hitranga dia mila manisy mpanova manodidina ny sisin'ny fomba fiteny mahazatra ataontsika isika b midika fiafaran’ny teny iray. Izany dia hanazava amin'ny Excel fa ny sombintsombiny (fanondroana) ilaintsika dia tokony ho teny misaraka, fa tsy ampahany amin'ny sombintsombiny hafa (laharan-telefaona):

Manaova lahatsoratra miaraka amin'ny fiteny mahazatra (RegExp) amin'ny Excel

Phone

Ny olana amin'ny fitadiavana laharan-telefaona ao anaty lahatsoratra dia misy safidy maro hanoratana isa - misy sy tsy misy tsipika, amin'ny alàlan'ny habaka, misy na tsy misy kaody faritra ao anaty bracket, sns. Noho izany, raha ny hevitro dia mora kokoa ny manao izany. Esory aloha ireo endri-tsoratra rehetra ireo amin'ny lahatsoratra loharano amin'ny fampiasana fiasa maromaro mpisolo toerana (MAMPIANA)ka miraikitra ho iray manontolo izy, ary avy eo miaraka amin'ny regular primitive d{11} misintona isa 11 misesy:

Manaova lahatsoratra miaraka amin'ny fiteny mahazatra (RegExp) amin'ny Excel

ITN

Somary sarotra kokoa izany eto, satria ny TIN (any amin'ny firenentsika) dia mety ho 10-digit (ho an'ny orinasa ara-dalàna) na 12-digit (ho an'ny olon-tsotra). Raha tsy mahita fahadisoana ianao indrindra, dia azo atao ny mahafa-po amin'ny mahazatra d{10,12}, fa raha lazaina amin'ny fomba hentitra, dia hanala ny isa rehetra manomboka amin'ny 10 ka hatramin'ny 12 tarehintsoratra, izany hoe ary diso niditra tamin'ny isa 11. Tsara kokoa ny mampiasa lamina roa mifandray amin'ny operator OR lojika | (baro mitsangana):

Manaova lahatsoratra miaraka amin'ny fiteny mahazatra (RegExp) amin'ny Excel

Mariho fa amin'ny fanontaniana dia mitady isa 12-bit aloha isika, ary avy eo amin'ny isa 10-bit. Raha manoratra ny fomba fiteny mahazatra antsika amin'ny fomba hafa isika, dia hivoaka ho an'ny rehetra izany, na dia TIN 12-bit lava aza, ireo tarehintsoratra 10 voalohany ihany. Izany hoe, aorian'ny fanerena ny fepetra voalohany dia tsy atao intsony ny fanamarinana fanampiny:

Manaova lahatsoratra miaraka amin'ny fiteny mahazatra (RegExp) amin'ny Excel

Izany no fahasamihafana fototra eo amin'ny mpandraharaha | avy amin'ny fonction logic excel mahazatra OR (OR), izay tsy manova ny vokatra ny fandrindrana ny hevitra.

SKU vokatra

Ao amin'ny orinasa maro, ny famantarana tokana dia omena amin'ny entana sy serivisy - lahatsoratra, kaody SAP, SKU, sns. Raha misy lojika ao amin'ny fanamarihana azy ireo, dia azo alaina mora foana amin'ny lahatsoratra rehetra izy ireo amin'ny fampiasana fomba fiteny mahazatra. Ohatra, raha fantatsika fa ny lahatsoratray dia misy litera anglisy lehibe telo, tsipika iray ary isa telo isa manaraka, dia:

Manaova lahatsoratra miaraka amin'ny fiteny mahazatra (RegExp) amin'ny Excel

Tsotra ny lojika ao ambadiky ny môdely. [AZ] - midika hoe litera lehibe amin'ny abidy latina. Ny quantifier manaraka 3 {} milaza fa zava-dehibe ho antsika fa misy taratasy telo katroka toy izany. Aorian'ny tsipika dia miandry isa telo isika, ka ampiana amin'ny farany d{3}

Vola vola

Amin'ny fomba mitovy amin'ny andalana teo aloha, azonao atao koa ny manala ny vidiny (vidiny, VAT ...) amin'ny famaritana ny entana. Raha aseho amin'ny tsipika, ohatra, ny sandan'ny vola, dia:

Manaova lahatsoratra miaraka amin'ny fiteny mahazatra (RegExp) amin'ny Excel

Pattern d miaraka amin'ny quantifier + mitady isa hatramin'ny tsipika, ary d{2} hitady denaria (isa roa) aorian'izay.

Raha tsy ny vidin-javatra no ilainao, fa ny VAT, dia azonao atao ny mampiasa ny tohan-kevitra fahatelo tsy voatery ho an'ny asantsika RegExpExtract, izay mamaritra ny laharana ordinal an'ilay singa ho alaina. Ary, mazava ho azy, azonao atao ny manolo ny fiasa mpisolo toerana (MAMPIANA) Ao amin'ny valiny, asio tsipìka amin'ny fanasarahana decimal manara-penitra ary ampio minus indroa eo am-piandohana mba handikana ny VAT hita ho isa mahazatra i Excel:

Manaova lahatsoratra miaraka amin'ny fiteny mahazatra (RegExp) amin'ny Excel

Laharana takelaka fiara

If you do not take special vehicles, trailers and other motorcycles, then the standard car number is parsed according to the principle “letter – three numbers – two letters – region code”. Moreover, the region code can be 2- or 3-digit, and only those that are similar in appearance to the Latin alphabet are used as letters. Thus, the following regular expression will help us to extract numbers from the text:

Manaova lahatsoratra miaraka amin'ny fiteny mahazatra (RegExp) amin'ny Excel

Time

Mba hanesorana ny fotoana amin'ny endrika HH:MM, ity fomba fiteny mahazatra manaraka ity dia mety:

Manaova lahatsoratra miaraka amin'ny fiteny mahazatra (RegExp) amin'ny Excel

Aorian'ny sombin'ny colon [0-5]d, satria mora fantarina, dia mametraka isa rehetra ao anatin'ny 00-59. Alohan'ny tsindrona ao anaty fononteny dia misy lamina roa miasa, misaraka amin'ny lojika OR (sodina):

  • [0-1]d - isa rehetra ao amin'ny laharana 00-19
  • 2[0-3] - isa rehetra ao amin'ny laharana 20-23

Ho an'ny vokatra azo, azonao atao koa ny mampihatra ny fiasa Excel mahazatra TIME (EKIKA)mba hamadika azy io ho endrika fotoana izay takatry ny fandaharana ary mety amin'ny kajy fanampiny.

Fanamarinana ny tenimiafina

Eritrereto hoe mila manamarina ny lisitry ny tenimiafina noforonin'ny mpampiasa isika mba hahitana marina. Araka ny fitsipikay, ny tenimiafina dia tsy misy afa-tsy litera anglisy (kely na lehibe) sy isa. Tsy azo atao ny velarana, tsipitsipika ary mari-piatoana hafa.

Ny fanaraha-maso dia azo alamina amin'ny fampiasana ity fomba fiteny mahazatra tsotra manaraka ity:

Manaova lahatsoratra miaraka amin'ny fiteny mahazatra (RegExp) amin'ny Excel

Raha ny marina, miaraka amin'ny lamina toy izany dia takianay ny eo anelanelan'ny voalohany (^) ary farany ($) tao amin'ny lahatsoratsika dia tsy nisy afa-tsy tarehintsoratra avy amin'ny andiana nomena ao anaty fononteny efamira. Raha toa ka mila manamarina ny halavan'ny tenimiafina (ohatra, fara fahakeliny 6 litera), dia ny quantifier + azo soloina amin'ny elanelana "enina na mihoatra" amin'ny endrika {6,}:

Manaova lahatsoratra miaraka amin'ny fiteny mahazatra (RegExp) amin'ny Excel

Tanàna avy amin'ny adiresy

Andeha hatao hoe mila misintona ny tanàna hiala amin'ny adiresy bar. Ny programa mahazatra dia hanampy, amin'ny fanesorana ny lahatsoratra avy amin'ny "g". mankany amin'ny faingo manaraka:

Manaova lahatsoratra miaraka amin'ny fiteny mahazatra (RegExp) amin'ny Excel

Andeha hojerentsika akaiky ity lamina ity.

Raha namaky ny lahatsoratra etsy ambony ianao, dia efa azonao fa misy dikany manokana ny endri-tsoratra sasany amin'ny fomba fiteny mahazatra (vanim-potoana, asterisk, famantarana dolara, sns.). Raha mila mitady ireo tarehin-tsoratra ireo ianao, dia ialohavan'ny tsipika mihemotra (antsoina hoe fiarovana). Noho izany, rehefa mitady ny sombiny "g". tsy maintsy manoratra amin'ny fomba fiteny mahazatra isika Mr. raha mitady plus isika dia + etc.

Ireo endri-tsoratra roa manaraka ao amin'ny môdely, ny teboka sy ny asterisk quantifier, dia manondro ny isan'ny tarehin-tsoratra, izany hoe ny anaran-tanàna.

Misy faingo eo amin'ny faran'ny môdely, satria mitady lahatsoratra avy amin'ny “g” isika. amin'ny faingo. Saingy mety misy faingo maromaro ao amin'ny lahatsoratra, sa tsy izany? Tsy aorian’ny tanàna ihany fa aorian’ny arabe, trano, sns. Iza amin’ireo no hijanonana ny fangatahanay? Izany no anton'ny fanontaniana. Raha tsy misy izany, ny fomba fiteny mahazatra ataontsika dia hamoaka ny tady lava indrindra azo atao:

Manaova lahatsoratra miaraka amin'ny fiteny mahazatra (RegExp) amin'ny Excel

Raha jerena ny fomba fiteny mahazatra, ny lamina toy izany dia "tia". Mba hanitsiana ny toe-javatra dia ilaina ny marika fanontaniana - izany no mahatonga ny quantifier izay mijoro ho "mahitsy" - ary ny fanontanianay dia mitondra ny lahatsoratra mankany amin'ny faingo voalohany aorian'ny "g.":

Manaova lahatsoratra miaraka amin'ny fiteny mahazatra (RegExp) amin'ny Excel

Anaran-drakitra avy amin'ny lalana feno

Toe-javatra iray hafa mahazatra dia ny manala ny anaran'ny rakitra amin'ny lalana feno. Ny fanehoana tsotra tsy tapaka ny endrika dia hanampy eto:

Manaova lahatsoratra miaraka amin'ny fiteny mahazatra (RegExp) amin'ny Excel

Ny hafetsena eto dia ny fikarohana, raha ny marina, dia mitranga amin'ny lalana mifanohitra - manomboka amin'ny farany ka hatrany am-piandohana, satria amin'ny faran'ny môdely dia $, ary mitady ny zava-drehetra alohan'izany izahay ka hatramin'ny tsipika mihemotra voalohany miankavanana. Ny backslash dia nandositra, toy ny teboka tamin'ny ohatra teo aloha.

PS

"Hatramin'ny farany" Te-hanazava aho fa ireo rehetra voalaza etsy ambony ireo dia ampahany kely amin'ny fahafaha-manao rehetra omen'ny fomba fiteny mahazatra. Betsaka ny endri-tsoratra sy fitsipika manokana ho an'ny fampiasana azy ireo, ary ny boky manontolo dia nosoratana momba ity lohahevitra ity (manolo-kevitra aho farafaharatsiny ity iray ity ho fanombohana). Amin'ny lafiny iray, ny fanoratana fiteny mahazatra dia saika zavakanto. Saika matetika, azo hatsaraina na ampitomboina ny fitenenana mahazatra noforonina, ka mahatonga azy io ho kanto kokoa na afaka miasa miaraka amin'ny angon-drakitra fampidirana midadasika kokoa.

Mba hamakafaka sy hamakafaka ny fomba fiteny mahazatra ataon'ny hafa na debug ny anao manokana dia misy tolotra an-tserasera mety tsara: RegEx101, RegExr sy ny maro hafa

Indrisy anefa fa tsy ny endri-javatra rehetra amin'ny fomba fiteny mahazatra mahazatra no tohanana ao amin'ny VBA (ohatra, fikarohana mivadika na kilasy POSIX) ary afaka miasa amin'ny Cyrillic, saingy heveriko fa izay misy dia ampy hampifaliana anao voalohany.

Raha tsy vaovao amin'ny lohahevitra ianao, ary manana zavatra hozaraina, avelao ny fanehoan-kevitra mahazatra rehefa miasa amin'ny Excel ao amin'ny fanehoan-kevitra etsy ambany. Tsara ny saina iray, fa ny kiraro roa dia mpivady!

  • Fanoloana sy fanadiovana lahatsoratra amin'ny fiasa SUBSTITUTE
  • Search and highlighting of Latin characters in text
  • Mitadiava lahatsoratra mitovitovy akaiky indrindra (Ivanov = Ivonov = Ivanof, sns.)

Leave a Reply