Regex si aad uga saarto xarfaha qaar ama qoraalka gudaha Excel

  • La Wadaag Tan
Michael Brown
doodda waa laga saaray, dhammaan kulammada la helay waa la saaray. Si aad u tirtirto ciyaar gaar ah, qeex nambarka tusaale ahaan>Xadhiga hoose, ka soo qaad inaad rabto inaad tirtirto nambarka dalabka koowaad. Dhammaan nambarada noocaan ah waxay ku bilowdaan calaamadda xashiishka (#) waxayna ka kooban yihiin 5 lambar. Markaa, waxaan ku aqoonsan karnaa iyaga anagoo adeegsanayna regex:

Qaabka : #\d{5}\b

Erayga xuduudda \b wuxuu qeexayaa in xaraf-hoosaad iswaafajin kara uusan noqon karin. qayb ka mid ah xadhig weyn sida # 10000001.

Si meesha looga saaro dhammaan tartammada, nambarka_nambarka lama qeexin:

> =RegExpReplace(A5, "#\d{5}\b", "")

> 14>

Si loo cirib tiro dhacdadii ugu horreysay, waxaan dejinnay tusaale_nambar doodda 1:

=RegExpReplace(A5, "#\d{5}\b", "", 1)

>

Regex si aad u tirtirto xuruufaha qaarkood

>Si aad xarfaha qaarkood uga saartid xargaha, kaliya qor dhammaan xarfaha aan la rabin oo ku kala saar bir toosansyntax xor ah oo ka baxsan xaddidaadaha VBA RegExp, iyo marka labaad, uma baahnid inaad geliso koodka VBA buugaagtaada shaqada maadaama dhammaan isku dhafka koodhka annagu aanu samaynayno xagga dambe> Qaybtaada shaqadu waa inaad dhisto odhaah joogto ah iyo u adeegto shaqada inta badan waxa lagu xidhaa [brackets] iyo (parentheses). Sideed meesha uga saartaa tafaasiishan aan khusayn anagoo ilaalinayna dhamaan xogta kale?

Runtii, waxaanu hore u dhisnay regex la mid ah tirtirida tags html, tusaale ahaan qoraalka xagasha xagasha. Sida iska cad, isla habab isku mid ah ayaa sidoo kale u shaqayn doona xajinta labajibbaaran iyo wareegyada.

Qaabka : (\(.*?\))

Weligaa ma ku fikirtay sida uu u awood badan yahay Excel haddii qof uu ku kobcin karo sanduuqiisa agabka tibaaxaha caadiga ah? Ma aanan ka fikirin oo kaliya laakiin ka shaqeynay :) Hadda, waxaad ku dari kartaa shaqadan cajiibka ah ee RegEx buugaagtaada shaqada oo aad tirtiri kartaa xargaha hoose ee u dhigma qaabka waqti yar!

> Usbuucii hore, waxaan eegnay sida loo isticmaalo tibaaxaha caadiga ah si loogu beddelo xargaha Excel. Taas awgeed, waxaan u abuurnay shaqo beddelka Regex caadada ah. Sida ay soo baxday, shaqadu waxay ka sii gudubtaa adeegsigeeda aasaasiga ah mana beddeli karto oo keliya xargaha laakiin sidoo kale ka saari kartaa. Sidee taasi noqon kartaa? Marka la eego Excel, ka saarista qiimaha wax kale maahan laakiin lagu beddelo xadhig madhan, wax shaqadayada Regex aad ugu fiican tahay! 7>

Sida aynu wada ognahay, tibaaxaha caadiga ah laguma taageero Excel si caadi ah. Si aad awood ugu yeelatid, waxaad u baahan tahay inaad abuurto shaqadaada qeexan ee isticmaalaha. Warka fiicani waa in shaqadan oo kale horey loo qoray, la tijaabiyay, oo diyaar u ah in la isticmaalo. Waxa kaliya oo ay tahay inaad sameyso waa inaad nuqul ka sameysaa code-kan, ku dhejiso tifaftirahaaga VBA, ka dibna u keydi faylkaaga sida buug-shaqeedka macro-enabled (.xlsm).

Shaqadu waxay leedahay soo socda syntax:

RegExpReplace (qoraal, qaab, beddelaad, [tusaale_num], [kulan_case])

Saddexda dood ee hore ayaa loo baahan yahay, labada u dambeeya waa ikhtiyaari.

> Halkee:4>
  • Qoraalka - xarafka qoraalka ee la raadinayosuurto gal ilaa ay ka helayso xidhitaan xidhidh

    Hannaan kasta oo aad doorato, natiijadu waxay ahaan doontaa gabi ahaanba isku mid.

    Tusaale ahaan, in laga saaro dhammaan tags html xarka A5 oo laga tago qoraalka, qaacidadu waa:

    =RegExpReplace(A5, "]*>", "")

    Ama waxaad isticmaali kartaa qiyaasaha caajiska ah sida ku cad shaashadda:

    >

    hal qoraal (saafka 5 - 9). Qoraallada badan (saafka 10 - 12), natiijadu waa su'aal la iska waydiin karo - qoraallada calaamado kala duwan ayaa la isku daray. Tani ma saxbaa mise maaha? Waxaan ka baqayaa, ma aha wax si fudud loo go'aansan karo - dhammaan waxay kuxirantahay fahamkaaga natiijada la rabo. Tusaale ahaan, B11, natiijada "A1" ayaa la filayaa; Inta aad ku jirto B10, waxaa laga yaabaa inaad rabto "data1" iyo "data2" in lagu kala saaro meel bannaan.

    Si aad meesha uga saarto html tags oo aad u kala saarto qoraallada soo haray ee meelaha bannaan, waxaad ku sii socon kartaa sidan:

    30>
  • Ku beddel tags meelo bannaan " ", maaha xargo madhan:

    =RegExpReplace(A5, "]*>", " ")

    >
  • Yaree meelo badan oo xarfo meel bannaan ah:

    =RegExpReplace(RegExpReplace(A5, "]*>", " "), " +", " ")

    >
  • Jar hogaaminta iyo meelaha daba-galka ah:

    =TRIM(RegExpReplace(RegExpReplace(A5, "]*>", " "), " +", " "))

    > >Natiijadu waxay u ekaan doontaa sidan oo kale: > >>>

    Ablebits Regex Remove Tool

    Haddii aad fursad u heshay inaad isticmaasho Ultimate Suite for Excel, waxay u badan tahay inaad hore u heshay Qalabka Regex-ga cusub ee la soo bandhigay dhawaanahan. Quruxda .NET ee ku salaysan hawlaha Regex waa in ay, marka hore, taageeraan muujinta joogtada ah ee si buuxdaikhtiyaarka Ka saar , oo ku dhufo Ka saar .

    Si aad natiijada u hesho qaacido ahaan, ma aha qiyam, dooro Geli qaab qaacido ah sanduuqa calaamadee.

    > Si aad qoraalka ku dhex jira xadhkaha uga saarto xargaha ku jira A2:A5, waxaanu dejinaynaa dejinta sida soo socota: >
  • >Natiijadu, AblebitsRegexRemove shaqada waxa la geliyaa tiir cusub oo ku xigta xogtaada asalka ah. 0>

    Shaqada waxa kale oo si toos ah loogu geli karaa unug iyada oo loo sii marayo heerka Insert Function sanduuqa wada hadalka, halkaas oo ay ku hoos qoran tahay AblebitsUDFs .<3

    Sida AblebitsRegexRemove loogu talagalay in lagu saaro qoraalka, waxay u baahan tahay laba doodood oo keliya - isha isha iyo regex. Labada cabbirba waxaa si toos ah loogu qeexi karaa qaacido ama waxaa lagu bixin karaa qaab tixraacyada unugga. Haddii loo baahdo, shaqadan gaarka ah waxaa lala isticmaali karaa mid kasta oo u dhashay.

    Tusaale ahaan, si loo gooyo meelo dheeraad ah xargaha natiijada, waxaad isticmaali kartaa shaqada TRIM sida duub:

    > =TRIM(AblebitsRegexRemove(A5, $A$2)) >

    Taasi waa sida looga saaro xargaha Excel iyadoo la adeegsanayo tibaaxaha caadiga ah. Waxaan kaaga mahadcelinayaa inaad akhriday waxaanan rajeynayaa inaan kugu arko blog-keena toddobaadka soo socda!

    > 6>la soo dajin karo >Ka saar xargaha adoo isticmaalaya regex - tusaaleyaal (.xlsm file) >Ultimate Suite - nooca tijaabada ah (.exe faylka) in.
  • Qaabka - odhaahda caadiga ah ee la raadiyo Si meesha looga saaro xarafka-hoosaadka ee ku habboon qaabka, isticmaal xadhig madhan ("") beddelka
  • >
  • Tusaale_num (ikhtiyaar) - tusaale ahaan beddelo. Haddii la iska dhaafo, dhammaan kulammada la helay waa la bedelayaa (default)
  • >
  • Match_case (ikhtiyaar) - Qiimaha Boolean oo tilmaamaya in la isku mid yahay ama la iska indha tiray kiiska qoraalka. U dhigma kiis xasaasi ah, isticmaal TRUE (default); Kiis-la'aanta - BEEN.
  • >> Wixii macluumaad dheeraad ah, fadlan eeg RegExpReplace function.> Talo. Xaaladaha fudud, waxaad ka saari kartaa jilayaasha gaarka ah ama erayada unugyada leh qaababka Excel. Laakiin tibaaxaha caadiga ah waxay bixiyaan xulashooyin badan oo badan oo tan ah.

    Sida loo saaro xargaha iyadoo la adeegsanayo tibaaxaha caadiga ah - tusaalooyin

    Sida kor ku xusan, si aad u tirtirto qaybo ka mid ah qoraalka qaabaynta, waa inaad bedeshaa iyaga. oo xadhig madhan leh. Haddaba, qaacidada guud ayaa qaabkan u qaabaysan:

    RegExpReplace(qoraal, nashqad, "", [tusaale_num], [match_case])

    Tusaalahan hoose waxay muujinayaan hirgelinta kala duwan ee fikraddan aasaasiga ah.

    Ka saar dhammaan tartamada ama ciyaar gaar ah

    >Shaqada RegExpReplace waxaa loogu talagalay in lagu helo dhammaan xargaha hoose ee ku habboon regex la bixiyay. Dhacdooyinka meesha laga saarayo waxaa gacanta ku haya dooda 4-aad ee ikhtiyaariga ah, magaceedu yahay intance_num.

    Dhammaantood waa isku-dheelitirnaan-marka tusaha_num hawlwadeenka isku xidhka (&) iyo hawlaha qoraalka sida MIDIG, DHEXE iyo BIDIX.

    Tusaale ahaan, in la qoro dhammaan nambarada telefoonada qaabka (123) 456-7890, qaaciddadu waa:

    ="("&LEFT(B5, 3)&") "&MID(B5, 4, 3)&"-"&RIGHT(B5, 4)

    Halka B5 ay tahay wax soo saarka RegExpReplace function

    >>>Ka saar xarfaha gaarka ah adoo isticmaalaya regex> Mid ka mid ah casharradayada, waxaanu eegnay sida looga saaro xarfaha aan loo baahnayn ee Excel anagoo adeegsanayna hawlo la dhisay iyo kuwo gaar ah. Tibaaxaha joogtada ah ayaa wax badan fududeeya! Halkii aad ku qori lahayd dhammaan jilayaasha si aad u tirtirto, kaliya sheeg kuwa aad rabto inaad hayso :)

    Hannaanku wuxuu ku salaysan yahay classes characters - daryeelka waxaa lagu dhejiyaa gudaha fasalka jilayaasha [^ ] si ay u dhigmaan hal xaraf oo AAN ku jirin xidhmooyinka. Qiyaasta + waxa ay ku qasbeysaa in loo tixgeliyo jilayaasha isku xiga sida hal ciyaar, si beddelka loogu sameeyo xaraf-hoosaad iswaafajin ah halkii loo samayn lahaa qof kasta.

    Waxay ku xidhan tahay baahidaada, dooro mid ka mid ah regexesyada soo socda.

    Si meesha looga saaro xuruufaha aan-alphanumeric-ka ahayn , ie. dhammaan jilayaasha marka laga reebo xarfaha iyo tirooyinka:

    Qaabka : [^0-9a-zA-Z] +

    Si loo nadiifiyo dhammaan jilayaasha marka laga reebo xarfaha , nambar iyo meelaha :

    >

    > Qaabka : [^0-9a-zA-Z]+

    Si aad u tirtirto dhammaan xarfaha marka laga reebo xarfaha , nambar iyo hoos kadhigi , waxaad isticmaali kartaa \ W oo u taagan jilaa kasta oo AAN ahayn xarfo xaraf ah amahoosta ka xarriiqay:

    Qaabka : \W+

    Haddii aad rabto inaad xafido jilayaasha kale qaarkood , tusaale. Calaamadaha xarakaynta, ku rid gudaha gunta.

    Tusaale ahaan, si aad isaga saarto xaraf kasta oo aan ahayn xaraf, digit, period, comma, ama meel bannaan, isticmaal regex-kan soo socda:

    >

    > Qaabka : [^0-9a-zA-Z\.,]+

    Tani waxay si guul leh u tirtiraysaa dhammaan jilayaasha gaarka ah, laakiin meel cad oo dheeraad ah ayaa hadhaysa.

    >>

    Si aad tan u hagaajiso, waxaad buul u gelin kartaa shaqada kore mid kale oo ku beddesha meelo badan oo leh xarfo meel bannaan.

    =RegExpReplace(RegExpReplace(A5,$A$2,""), " +", " ")

    Ama isticmaal kaliya shaqada TRIM ee asalka ah oo leh saameyn la mid ah :

    =TRIM(RegExpReplace(A5, $A$2, ""))

    Regex si aad u tirtirto xarfaha aan tirada ahayn

    Si aad u tirtirto dhammaan xarfaha aan tirada ahayn ee xargaha, waxaad isticmaali kartaa ama qaaciidadan dheer ama mid ka mid ah regexes-yada aadka u fudud ee hoos ku taxan.

    Isku dhig xaraf kasta oo aan lambar ahayn:

    Qaabka : \D+

    Ka saar xarfaha aan tirada ahayn adigoo isticmaalaya fasallada la diiddan yahay:

    Qaabka : [^0-9]+

    Qaabka : [^\d] +

    Talo. Haddi yoolkaagu yahay inaad ka saarto qoraalka oo aad ku daadiso tirooyinka hadhay unugyo kala duwan ama aad ku wada riddo hal unug oo kala go'ay xadad cayiman, ka dib isticmaal shaqada RegExpExtract sida lagu sharraxay Sida loo soo saaro tirooyinka xadhigga iyadoo la adeegsanayo tibaaxo joogto ah.

    Regex si aad u tirtirto wax walba ka dib meel bannaan

    > Si aad u tirtirto wax walba ka dib meel bannaan, isticmaal booska ( ) ama midkoodwhitespace (\s) character si aad u hesho booska kowaad iyo .* si aad ugu dhigmato xaraf kasta oo ka dambeeya , dhab ahaantii dhib ma laha kuwa ka mid ah regexes-yada hoose ee aad isticmaasho. Haddii ay dhacdo xadhkaha xadhkaha badan, waxa ay samaysaa farqi.

    Si aad meesha uga saarto wax walba ka bacdi jilaa bannaan , isticmaal regex-kan:

    >

    > Qaabka >: " ." Si ay natiijadu u soo baxdo si sax ah, hubi inaad shid qoraalka Duubista.

    >Si aad isaga saarto wax kasta ka bacdi meel cadwaa:

    Qaabka : \s.*

    =RegExpReplace(A5, "\s.*", "")

    Sababtoo ah \ s waxay ku habboon tahay dhowr nooc oo kala duwan oo bannaan oo ay ku jiraan khad cusub (\n), qaacidadaani waxay tirtirtaa wax walba kadib booska kowaad ee unugga, iyadoon loo eegayn inta sadar ee ku jira.

    >

    character

    Adiga oo isticmaalaya hababka tusaalihii hore, waxaad tirtiri kartaa qoraalka ka dib xaraf kasta oo aad sheegto

    Si aad u maamusho xariiq kasta si gaar ah:

    >

    >Hannaanka guud : char.*

    Xadhkaha hal-line, tani waxay meesha ka saaraysaa wax walba kadib char . Xadhkaha xadhkaha badan leh, xariiq kasta waxa loo habayn doonaa si gaar ah sababtoo ah dhadhanka VBA Regex, muddo (.) waxay la mid tahay dabeecad kasta marka laga reebo mid cusub.bilawga xadhigga ^, waxaanu dhignaa eber ama in ka badan oo xarfo aan meel bannaanayn [^ ]* kuwaas oo ay isla markiiba raacayaan hal ama in ka badan oo bannaan "+". Qeybta ugu dambeysa waxaa lagu daraa si looga hortago meelaha bannaan ee hogaamin kara natiijooyinka.

    >Si meesha looga saaro qoraalka ka hor booska koowaad ee sadar kasta, qaacidada waxaa lagu qoray qaab "all matches" default ( tus_numlaga saaray):

    =RegExpReplace(A5, "^[^ ]* +", "")

    Si aad u tirtirto qoraalka ka hor meesha ugu horreysa ee safka koowaad, oo aad uga tagto dhammaan sadarrada kale, intance_num doodda waxa loo dejiyay 1:

    =RegExpReplace(A5, "^[^ ]* +", "", 1)

    >

    Regex si aad isaga saarto wax walba ka hor inta aan jilaha ahayn

    Sida ugu fudud ee qoraalka oo dhan meesha looga saaro ka hor xarfo gaar ah waa adiga oo isticmaalaya regex sidan oo kale:

    Habka guud : ^[^char]*char

    >

    oo loo turjumay luqadda aadanaha, waxay tidhaahdaa: "Laga bilaabo xadhigga xadhigga ^ , dhigma 0 ama ka badan marka laga reebo char [^char]* ilaa dhacdadii ugu horaysay ee char .

    Tusaale ahaan, in la tirtiro dhammaan qoraalka ka hor xiidanka koowaad , isticmaal odhaahdan caadiga ah:

    Qaabka : ^[^:]*:

    Si aad isaga ilaaliso meelaha bannaan ee natiijooyinka, ku dar xarfo meel cad \s* dhamaadka Tani waxay meesha ka saaraysaa wax walba g ka hor xiidanka hore oo goo meel kasta oo isla markiiba ka dambeeya:

    Qaabka : ^ [^:]*:\s*

    >

    =RegExpReplace(A5, "^[^:]*:\s*", "")

    Talo. Marka laga soo tago tibaaxaha caadiga ah, Excel waxa uu leeyahay habab u gaar ah oo uu qoraalka uga saaro meel ama dhig. Si aad u barato sida hawsha loogu dhammeeyo qaacidooyinka waddaniga ah,fadlan eeg sida loo tirtiro qoraalka ka hor ama ka dib xarfaha Excel.

    Regex si aad u tirtirto wax walba marka laga reebo

    >Si aad u tirtirto dhammaan xarfaha xarfaha marka laga reebo kuwa aad rabto in aad ilaaliso, isticmaal fasallada xarfaha la diiddan yahay.

    Tusaale ahaan, si aad meesha uga saarto dhammaan xarfaha marka laga reebo xarfaha yaryar. iyo dhibco, regex-ku waa:

    Qaabka : [^a-z\.]+

    Runtii, waxaan samayn karnaa la'aanteed + cabbirka halkan sida shaqadeenu u beddesho dhammaan taraq helay. Qiyaasta ayaa ka dhigaysa in yar oo degdeg ah - halkii aad ka qaban lahayd jile kasta, waxaad beddeshaa xaraf-hoosaad.

    =RegExpReplace(A5, "[^a-z\.]+", "")

    >

    >>Regex si meesha looga saaro html tags gudaha Excel.

    Marka hore, waa in la ogaadaa in HTML uusan ahayn luqad caadi ah, sidaas darteed in lagu falanqeeyo iyada oo la adeegsanayo tibaaxaha caadiga ah maaha habka ugu fiican. Taasi waxay tidhi, regexes hubaal waxay kaa caawin kartaa inaad ka saartid unugyadaada si ay uga dhigaan xogtaada mid nadiif ah.

    Marka la eego in html tags mar walba lagu dhejiyo xagasha xagasha , waxaad ka heli kartaa adigoo isticmaalaya mid ka mid ah regexes soo socda.

    Fasalka diiddan:

    Qaabka : ]*>

    Halkan, waxaan ku dhignaa garabka xagasha furitaanka, oo ay ku xigto eber ama dhacdooyin badan oo dabeecad kasta marka laga reebo Xiritaanka xagasha [^>]* ilaa xagalka xagasha xidhidh ee ugu dhow wax kasta oo ka bilaabma xidhmada furitaanka ugu horreeya ilaa xidhitaanka koowaad ee xidhitaanka. Su'aashu waxay ku qasbeysaa .* in ay la mid noqoto dhowr xaraf sidaline.

    Si loo habeeyo dhammaan xariiqyada sida xargo keliya:

    Qaabka guud : char(.

    Michael Brown waa xamaasad tignoolajiyada u heellan oo xiise u leh fududaynta hababka adag iyadoo la adeegsanayo aaladaha software. In ka badan toban sano oo waayo-aragnimo ah oo ku saabsan warshadaha teknoolajiyada, wuxuu ku horumariyay xirfadihiisa Microsoft Excel iyo Outlook, iyo sidoo kale Google Sheets iyo Docs. Blog-ga Michael wuxuu u heellan yahay inuu la wadaago aqoontiisa iyo khibradiisa dadka kale, isagoo siinaya tabo-fudud oo la raaco iyo casharro lagu horumarinayo wax soo saarka iyo hufnaanta. Haddii aad tahay xirfadle khibrad leh ama bilow ah, Michael's blog wuxuu bixiyaa fikrado qiimo leh iyo talooyin wax ku ool ah si aad uga faa'iidaysato qalabkan software-ka ah ee muhiimka ah.