Regex por forigi iujn signojn aŭ tekston en Excel

  • Kundividu Ĉi Tion
Michael Brown
argumento estas preterlasita, ĉiuj trovitaj kongruoj estas forigitaj. Por forigi specifan kongruon, difinu la ekzemplernumeron.

En la subaj ĉenoj, supozu, ke vi volas forigi la unuan ordon nombron. Ĉiuj tiaj nombroj komenciĝas per la hash-signo (#) kaj enhavas ekzakte 5 ciferojn. Do, ni povas identigi ilin uzante ĉi tiun regex:

Modelo : #\d{5}\b

La vortlimo \b specifas, ke kongrua subĉeno ne povas esti parto de pli granda ĉeno kiel #10000001.

Por forigi ĉiujn kongruojn, la argumento instance_num ne estas difinita:

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

Por forigi nur la unuan aperon, ni starigas la argumenton instance_num al 1:

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

Regex forigi iujn signojn

Por forigi iujn signojn de ĉeno, simple skribu ĉiujn nedeziratajn signojn kaj apartigu ilin per vertikala strekosintakso sen VBA RegExp-limigoj, kaj due, ne postulas enmeti ajnan VBA-kodon en viaj laborlibroj ĉar la tuta koda integriĝo estas farita de ni ĉe la malantaŭo.

Via parto de la laboro estas konstrui regulan esprimon kaj servu ĝin al la funkcio :) Mi montru al vi kiel fari tion sur praktika ekzemplo.

Kiel forigi tekston inter krampoj kaj krampoj uzante regex

En longaj tekstaj ĉenoj, malpli gravaj informoj. estas ofte enfermita inter [krampoj] kaj (krampoj). Kiel vi forigas tiujn sensignifajn detalojn konservante ĉiujn aliajn datumojn?

Fakte, ni jam konstruis similan regex por forigi html-etikedojn, t.e. tekston en angulaj krampoj. Evidente, la samaj metodoj funkcios ankaŭ por kvadrataj kaj rondaj krampoj.

Skemo : (\(.*?\))

Ĉu vi iam pensis kiom potenca Excel estus se iu povus riĉigi ĝian ilarkeston per regulaj esprimoj? Ni ne nur pensis, sed laboris pri ĝi :) Kaj nun, vi povas aldoni ĉi tiun mirindan RegEx-funkcion al viaj propraj laborlibroj kaj forigi subŝnurojn kongruajn kun ŝablono en baldaŭa tempo!

Lastan semajnon, ni rigardis. pri kiel uzi regulajn esprimojn por anstataŭigi ŝnurojn en Excel. Por tio, ni kreis kutiman Regex Replace-funkcion. Kiel evidentiĝis, la funkcio superas sian ĉefan uzon kaj povas ne nur anstataŭigi ŝnurojn sed ankaŭ forigi ilin. Kiel tio povus esti? Koncerne Excel, forigi valoron estas nenio alia ol anstataŭigi ĝin per malplena ĉeno, io pri kio nia Regex-funkcio tre bonas!

VBA RegExp-funkcio por forigi subŝnurojn en Excel

Kiel ni ĉiuj scias, regulaj esprimoj ne estas subtenataj en Excel defaŭlte. Por ebligi ilin, vi devas krei vian propran uzant-difinitan funkcion. La bona novaĵo estas, ke tia funkcio jam estas skribita, testita kaj preta por uzo. Ĉio, kion vi devas fari, estas kopii ĉi tiun kodon, alglui ĝin en vian VBA-redaktilon, kaj poste konservi vian dosieron kiel makro-ebligita laborlibro (.xlsm).

La funkcio havas la jena sintakso:

RegExpReplace(teksto, ŝablono, anstataŭaĵo, [instance_num], [match_case])

La unuaj tri argumentoj estas postulataj, la lastaj du estas laŭvolaj.

Kie:

  • Teksto - la tekstoĉeno serĉendaebla ĝis ĝi trovas ferman krampon.

Kiu ajn ŝablono vi elektos, la rezulto estos absolute la sama.

Ekzemple, por forigi ĉiujn html-etikedojn de ĉeno en A5 kaj lasi tekston, la formulo estas:

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

Aŭ vi povas uzi la maldiligentan kvanton kiel montrita en la ekrankopio:

Ĉi tiu solvo funkcias perfekte por ununura teksto (vicoj 5 - 9). Por pluraj tekstoj (vicoj 10 - 12), la rezultoj estas dubindaj - tekstoj de malsamaj etikedoj estas kunfanditaj en unu. Ĉu ĉi tio estas ĝusta aŭ ne? Mi timas, ke ĝi ne estas io facile decidiebla - ĉio dependas de via kompreno pri la dezirata rezulto. Ekzemple, en B11, la rezulto "A1" estas atendata; dum en B10, vi eble volas ke "datumoj1" kaj "datumoj2" estu apartigitaj per spaco.

Por forigi html-etikedojn kaj apartigi la ceterajn tekstojn per spacoj, vi povas procedi tiamaniere:

  1. Anstataŭigi etikedojn per spacoj " ", ne malplenaj ĉenoj:

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

  2. Reduktu plurajn spacojn al ununura spaca signo:

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

  3. Eltondi antaŭajn kaj finajn spacojn:

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

La rezulto aspektos kiel ĉi tio:

Ablebits Regex Remove Tool

Se vi havis ŝancon uzi nian Finfinan Suite por Excel, vi verŝajne jam malkovris la novajn Regex Ilojn prezentitajn kun la lastatempa eldono. La beleco de ĉi tiuj Regex-funkcioj bazitaj en .NET estas, ke ili, unue, subtenas plenefikajn regulajn esprimojn.la opcion Forigi , kaj premu Forigi .

Por akiri la rezultojn kiel formuloj, ne valoroj, elektu la markobutonon Enmeti kiel formulon .

Por forigi tekston inter krampoj el ĉenoj en A2:A5, ni agordas la agordojn. jene:

Kiel rezulto, la funkcio AblebitsRegexRemove estas enmetita en novan kolumnon apud viaj originalaj datumoj.

La funkcio ankaŭ povas esti enigita rekte en ĉelon per la norma dialogujo Enmeti Funkcion , kie ĝi estas kategoriigita sub AblebitsUDFs .

Ĉar AblebitsRegexRemove estas desegnita por forigi tekston, ĝi postulas nur du argumentojn - la fontoĉeno kaj regex. Ambaŭ parametroj povas esti difinitaj rekte en formulo aŭ liveritaj en la formo de ĉelaj referencoj. Se necese, ĉi tiu kutima funkcio povas esti uzata kune kun iuj denaskaj.

Ekzemple, por tranĉi kromajn spacojn en la rezultaj ŝnuroj, vi povas uzi la TRIM-funkcion kiel envolvaĵon:

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

Tiel forigi ŝnurojn en Excel uzante regulajn esprimojn. Mi dankas vin pro legado kaj antaŭĝojas vidi vin en nia blogo venontsemajne!

Haveblaj elŝutoj

Forigi ĉenojn per regex - ekzemploj (.xlsm-dosiero)

Ultimate Suite - provversio (.exe dosiero)

in.
  • Skemo - la regula esprimo serĉenda.
  • Anstataŭaĵo - la teksto por anstataŭigi. Por forigi subŝnurojn kongruantajn kun la ŝablono, uzu malplenan ĉenon ("") por anstataŭigo.
  • Instance_num (laŭvola) - la kazo al anstataŭigi. Se ellasita, ĉiuj trovitaj kongruoj estas anstataŭigitaj (defaŭlte).
  • Match_case (laŭvola) - Bulea valoro indikanta ĉu kongrui aŭ ignori tekston. Por uskle-distinga kongruo, uzu VERA (defaŭlte); por majuskla nedistinga - FALSA.
  • Por pliaj informoj, bonvolu vidi funkcion RegExpReplace.

    Konsileto. En simplaj kazoj, vi povas forigi specifajn signojn aŭ vortojn el ĉeloj per Excel-formuloj. Sed regulaj esprimoj provizas multe pli da ebloj por tio.

    Kiel forigi ŝnurojn per regulaj esprimoj - ekzemploj

    Kiel supre menciite, por forigi partojn de teksto kongruaj kun ŝablono, vi devas anstataŭigi ilin kun malplena ŝnuro. Do, ĝenerala formulo prenas ĉi tiun formon:

    RegExpReplace(teksto, ŝablono, "", [instance_num], [match_case])

    La subaj ekzemploj montras diversajn efektivigojn de ĉi tiu baza koncepto.

    Forigi ĉiuj kongruoj aŭ specifa kongruo

    La funkcio RegExpReplace estas desegnita por trovi ĉiujn subĉenojn kongruajn kun difinita regex. Kiuj okazoj forigi estas kontrolataj de la 4-a laŭvola argumento, nomita instance_num .

    La defaŭlta estas "ĉiuj kongruoj" - kiam la instance_num kunkatenigfunkciigisto (&) kaj Tekstaj funkcioj kiel DEKSTRA, MEZA kaj LEFT.

    Ekzemple, por skribi ĉiujn telefonnumerojn en la (123) 456-7890 formato, la formulo estas:

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

    Kie B5 estas la eligo de la funkcio RegExpReplace.

    Forigu specialajn signojn uzante regex

    En unu el niaj lerniloj, ni rigardis kiel forigi nedeziratajn signojn en Excel uzante enkonstruitajn kaj kutimajn funkciojn. Regulaj esprimoj faciligas aferojn! Anstataŭ listigi ĉiujn signojn por forigi, simple specifu tiujn, kiujn vi volas konservi :)

    La ŝablono baziĝas sur neitaj signoklasoj - signo estas metita ene de signoklaso [^ ] por kongrui kun ajna unuopa signo NE inter krampoj. La + kvantigilo devigas ĝin rigardi sinsekvajn signojn kiel ununuran kongruon, tiel ke anstataŭigo estas farita por kongrua subĉeno prefere ol por ĉiu individua signo.

    Laŭ viaj bezonoj, elektu unu el la sekvaj regeksoj.

    Por forigi ne-alfanombrajn signojn, t.e. ĉiujn signojn krom literoj kaj ciferoj:

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

    Por purigi ĉiujn signojn krom literoj , ciferoj kaj spacoj :

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

    Por forigi ĉiujn signojn krom literoj , ciferoj kaj substreko , vi povas uzi \ W kiu signifas ajnan signon kiu NE estas alfanombra signo aŭsubstreko:

    Skemo : \W+

    Se vi volas konservi iujn aliajn signojn , ekz. interpunkciosignoj, metu ilin en la krampojn.

    Ekzemple, por forigi ajnan signon krom litero, cifero, punkto, komo aŭ spaco, uzu la jenan regex:

    Ŝablono : [^0-9a-zA-Z\., ]+

    Tio sukcese forigas ĉiujn specialajn signojn, sed kroma blankspaco restas.

    Por ripari ĉi tion, vi povas nesti la supran funkcion en alian, kiu anstataŭigas plurajn spacojn per unuopa spaca signo.

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

    Aŭ simple uzi la denaskan TRIM-funkcion kun la sama efiko. :

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

    Regex por forigi ne-nombrajn signojn

    Por forigi ĉiujn ne-nombrajn signojn de ĉeno, vi povas uzi aŭ ĉi tiu longa formulo aŭ unu el la tre simplaj regeksoj listigitaj malsupre.

    Kongruu kun ajna signo kiu NE estas cifero:

    Skemo : \D+

    Forigi ne-nombrajn signojn uzante neigitajn klasojn:

    Skemo : [^0-9]+

    Skemo : [^\d] +

    Konsileto. Se via celo estas forigi tekston kaj disverŝi la ceterajn nombrojn en apartajn ĉelojn aŭ meti ilin ĉiujn en unu ĉelon apartigitan per specifita limigilo, tiam uzu la RegExpExtract-funkcion kiel klarigite en Kiel ĉerpi nombrojn el ŝnuro uzante regulajn esprimojn.

    Regex por forigi ĉion post spaco

    Por forigi ĉion post spaco, uzu aŭ la spacon ( ) aŭblankspaco (\s) signo por trovi la unuan spacon kaj .* por kongrui iujn ajn signojn post ĝi.

    Se vi havas unuliniajn ĉenojn kiuj enhavas nur normalajn spacojn (valoro 32 en la 7-bita ASCII-sistemo) , ne vere gravas kiun el la subaj regeksoj vi uzas. Okaze de plurliniaj ĉenoj, ĝi ja faras diferencon.

    Por forigi ĉion post spaca signo , uzu ĉi tiun regex:

    Skemo : " .*"

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

    Ĉi tiu formulo forigos ion ajn post la unua spaco en ĉiu linio . Por ke la rezultoj aperos ĝuste, nepre ŝaltu Envolvi tekston.

    Por forigi ĉion post blankspaco (inkluzive spacon, tabuladon, kaleŝon kaj novan linion), la regex. estas:

    Skemo : \s.*

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

    Ĉar \s kongruas kun kelkaj malsamaj blankspacoj inkluzive de nova linio (\n), ĉi tiu formulo forigas ĉion post la unua spaco en ĉelo, negrave kiom da linioj estas en ĝi.

    Regex por forigi tekston post specifa. karaktero

    Uzante la metodojn de la antaŭa ekzemplo, vi povas forigi tekston post iu ajn signo kiun vi specifis.

    Por trakti ĉiun linion aparte:

    Ĝenerala ŝablono : char.*

    En unuliniaj ĉenoj, ĉi tio forigos ĉion post char . En plurliniaj ĉenoj, ĉiu linio estos prilaborita individue ĉar en la VBA Regex-gusto, punkto (.) kongruas kun ajna signo krom nova.komenco de ĉeno ^, ni kongruas kun nul aŭ pli da nespacaj signoj [^ ]* kiuj estas tuj sekvataj de unu aŭ pluraj spacoj " +". La lasta parto estas aldonita por malhelpi eblajn ĉefajn spacojn en la rezultoj.

    Por forigi tekston antaŭ la unua spaco en ĉiu linio, la formulo estas skribita en la defaŭlta "ĉiuj kongruoj" reĝimo ( instance_num ellasita):

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

    Por forigi tekston antaŭ la unua spaco en la unua linio, kaj lasi ĉiujn aliajn liniojn nerompitaj, la argumento instance_num estas agordita al 1:

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

    Regekso por forigi ĉion antaŭ signo

    La plej facila maniero forigi la tutan tekston antaŭ specifa signo estas uzi regekson tiel:

    Ĝenerala ŝablono : ^[^char]*char

    Tradukita en homan lingvon, ĝi diras: "de la komenco de ĉeno ankrita de ^ , kongruu kun 0 aŭ pli da signoj krom char [^char]* ĝis la unua okazo de char .

    Ekzemple, por forigi la tutan tekston antaŭ la unua dupunkto , uzu ĉi tiun regulan esprimon:

    Ŝablono : ^[^:]*:

    Por eviti kondukajn spacojn en la rezultoj, aldonu blankspacon \s* al la fino. Ĉi tio forigos ĉion g antaŭ la unua dupunkto kaj tranĉu iujn ajn spacojn tuj post ĝi:

    Modelo : ^[^:]*:\s*

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

    Konsileto. Krom regulaj esprimoj, Excel havas siajn proprajn rimedojn por forigi tekston laŭ pozicio aŭ kongruo. Por lerni kiel plenumi la taskon per denaskaj formuloj,bonvolu vidi Kiel forigi tekston antaŭ aŭ post signo en Excel.

    Regex por forigi ĉion krom

    Por ekstermi ĉiujn signojn de ĉeno krom tiuj, kiujn vi volas konservi, uzu negitajn klasojn.

    Ekzemple, por forigi ĉiujn signojn krom minusklaj literoj. kaj punktoj, la regex estas:

    Skemo : [^a-z\.]+

    Fakte, ni povus malhavi la + kvantigilon ĉi tie ĉar nia funkcio anstataŭigas ĉiujn trovis kongruojn. La kvantigilo simple faras ĝin iom pli rapida - anstataŭ trakti ĉiun individuan signon, vi anstataŭigas subĉenon.

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

    Regex por forigi html-etikedojn en Excel.

    Unue, oni devas rimarki, ke HTML ne estas regula lingvo, do analizi ĝin per regulaj esprimoj ne estas la plej bona maniero. Dirite, regeksoj certe povas helpi forigi etikedojn el viaj ĉeloj por purigi vian datumaron.

    Konsiderante ke html-etikedoj ĉiam estas metitaj en angulaj krampoj , vi povas trovi ilin uzante unu el la sekvaj regeksoj.

    Neigita klaso:

    Skemo : ]*>

    Ĉi tie, ni kongruas kun malferma angula krampo, sekvita de nul aŭ pli da aperoj de iu ajn signo krom la ferma angula krampo [^>]* ĝis la plej proksima ferma angula krampo.

    Maldiligenta serĉo:

    Skemo :

    Ĉi tie, ni kongruas io ajn de la unua malferma krampo ĝis la unua ferma krampo. La demandosigno devigas .* egali tiom da signoj kiomlinio.

    Por prilabori ĉiujn liniojn kiel ununura ĉeno:

    Ĝenerala ŝablono : char(.

    Michael Brown estas diligenta teknologia entuziasmulo kun pasio por simpligi kompleksajn procezojn uzante programarajn ilojn. Kun pli ol jardeko da sperto en la teknologia industrio, li perfektigis siajn kapablojn en Microsoft Excel kaj Outlook, same kiel Google Sheets kaj Docs. La blogo de Mikaelo estas dediĉita al kunhavigi siajn sciojn kaj kompetentecon kun aliaj, provizante facilajn sekvajn konsiletojn kaj lernilojn por plibonigi produktivecon kaj efikecon. Ĉu vi estas sperta profesiulo aŭ komencanto, la blogo de Mikaelo ofertas valorajn komprenojn kaj praktikajn konsilojn por eltiri la plej multajn el ĉi tiuj esencaj programaj iloj.