Regex gus caractaran no teacsa sònraichte a thoirt air falbh ann an Excel

  • Roinn Seo
Michael Brown
argamaid air fhàgail a-mach, tha a h-uile maids a chaidh a lorg air a thoirt air falbh. Airson maids shònraichte a sguabadh às, sònraich àireamh an t-eisimpleir.

San t-sreath gu h-ìosal, saoil gu bheil thu airson a' chiad àireamh òrdugh a sguabadh às. Bidh na h-àireamhan sin uile a’ tòiseachadh leis an t-soidhne hash (#) agus tha dìreach 5 àireamhan ann. Mar sin, 's urrainn dhuinn an comharrachadh leis an regex seo:

Pàtran : #\d{5}\b

Sònraichidh am facal crìoch \b nach urrainn fo-theaghlach a bhith pàirt de shreang nas motha mar #10000001.

Gus a h-uile maids a thoirt air falbh, chan eil an argamaid instance_num air a mhìneachadh:

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

Gus cuir às ach a’ chiad tachartas, shuidhich sinn an argamaid instance_num gu 1:

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

Regex gus caractaran sònraichte a thoirt air falbh

Gus caractaran sònraichte a thoirt air falbh bho shreang, dìreach sgrìobh sìos a h-uile caractar nach eileas ag iarraidh agus dealaich iad le bàr dìreachco-chòrdadh saor bho chuingealachaidhean VBA RegExp, agus san dàrna àite, na cuir a-steach còd VBA sam bith anns na leabhraichean-obrach agad oir bidh sinn a’ dèanamh aonachadh còd aig an deireadh-sheachdain.

Is e do phàirt den obair abairt àbhaisteach a thogail agus seirbhis e don ghnìomh :) Leig dhomh sealltainn dhut mar a nì thu sin air eisimpleir phractaigeach.

Mar a bheir thu air falbh teacsa eadar camagan is bragan a’ cleachdadh regex

Ann an teudan teacsa fada, fiosrachadh nach eil cho cudromach gu tric dùinte ann an [camagan] agus (bratachan). Ciamar a bheir thu air falbh am mion-fhiosrachadh neo-iomchaidh sin a’ cumail a h-uile dàta eile?

Gu dearbh, tha sinn air regex den aon seòrsa a thogail mu thràth airson cuir às do thagaichean html, i.e. teacsa taobh a-staigh camagan ceàrn. Gu follaiseach, obraichidh na h-aon dhòighean airson camagan ceàrnagach is cruinn cuideachd.

Pàtran : (\(.*?\))

An do smaoinich thu a-riamh dè cho cumhachdach sa bhiodh Excel nam b’ urrainn dha cuideigin am bogsa-innealan aige a shaidhbhreachadh le abairtean cunbhalach? Chan e a-mhàin gu bheil sinn air smaoineachadh ach air obrachadh air :) Agus a-nis, faodaidh tu a’ ghnìomh iongantach RegEx seo a chuir ris na leabhraichean-obrach agad fhèin agus cuir às do fho-stratan a tha co-chosmhail ri pàtran ann an ùine sam bith!

An t-seachdain sa chaidh, choimhead sinn air mar a chleachdas tu abairtean cunbhalach an àite sreangan ann an Excel. Airson seo, chruthaich sinn gnìomh àbhaisteach Regex Replace. Mar a thionndaidh e a-mach, tha an gnìomh a ’dol nas fhaide na a phrìomh chleachdadh agus chan urrainn dha a-mhàin sreangan a chuir an àite ach cuideachd an toirt air falbh. Ciamar a dh’ fhaodadh sin a bhith? A thaobh Excel, chan eil ann an toirt air falbh luach ach sreang fhalamh a chuir na àite, rudeigin a tha an gnìomh Regex againn glè mhath air!

Gnìomh VBA RegExp gus fo-thalamhan a thoirt air falbh ann an Excel

Mar a tha fios againn uile, chan eil abairtean cunbhalach a’ faighinn taic ann an Excel gu bunaiteach. Gus an comasachadh, feumaidh tu an gnìomh agad fhèin a tha air a mhìneachadh leis a’ chleachdaiche a chruthachadh. Is e an deagh naidheachd gu bheil a leithid de ghnìomh mar-thà air a sgrìobhadh, air a dhearbhadh, agus deiseil airson a chleachdadh. Chan eil agad ach an còd seo a chopaigeadh, a phasgadh a-steach don deasaiche VBA agad, agus an uairsin am faidhle agad a shàbhaladh mar leabhar-obrach le comas macro (.xlsm).

Tha an gnìomh aig a’ ghnìomh. co-chàradh a leanas:

RegExpReplace (teacsa, pàtran, ath-shuidheachadh, [instance_num], [match_case])

Tha feum air a’ chiad trì argamaidean, tha an dhà mu dheireadh roghainneil.

Càite:

  • Teacs - an sreang teacsa ri lorgcomasach gus an lorg e bracaid dùnaidh.

Ge bith dè am pàtran a thaghas tu, bidh an toradh gu tur mar a tha e.

Mar eisimpleir, gus na tagaichean html gu lèir a thoirt air falbh bho shreang ann an A5 is an teacsa fhàgail, 's e am foirmle:

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

No 's urrainn dhut an tomhas-tomhais leisg a chleachdadh mar a chithear san dealbh-sgrìn:

Tha am fuasgladh seo ag obair gu foirfe airson teacsa singilte (sreathan 5 - 9). Airson iomadh teacsa (sreathan 10 - 12), tha na toraidhean teagmhach - tha teacsaichean bho dhiofar tagaichean air an cur còmhla ann an aon. A bheil seo ceart no nach eil? Tha eagal orm, chan e rudeigin a tha furasta a cho-dhùnadh - tha e uile an urra ri do thuigse mun toradh a tha thu ag iarraidh. Mar eisimpleir, ann am B11, thathar an dùil an toradh "A1"; fhad 's a tha thu ann am B10, 's dòcha gum bi thu airson "data1" agus "data2" a bhith air an sgaradh le beàrn.

Gus tagaichean html a thoirt air falbh agus na teacsaichean a tha air fhàgail a sgaradh le beàrnan, faodaidh tu leantainn air adhart san dòigh seo:

  1. Cuir beàrnan na àite nan tagaichean, chan e teudan falamh:

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

  2. Lùghdaich iomadh beàrn gu aon charactar fànais:

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

  3. Trim àiteachan treòrachaidh is slaodadh:

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

Coimheadaidh an toradh rudeigin mar seo:

Inneal Thoir air falbh Ablebits Regex

Ma tha cothrom agad ar Ultimate Suite for Excel a chleachdadh, is dòcha gun lorg thu mu thràth na h-innealan Regex ùra a chaidh a thoirt a-steach leis an fhoillseachadh o chionn ghoirid. Is e bòidhchead nan gnìomhan Regex .NET seo gu bheil iad, an toiseach, a’ toirt taic do dhòigh-labhairt cunbhalach làn-nochdadhan roghainn Thoir air falbh , agus buail Thoir air falbh .

Gus na toraidhean fhaighinn mar fhoirmlean, chan e luachan, tagh am bogsa-seic Cuir a-steach mar fhoirmle .

Gus teacsa taobh a-staigh camagan a thoirt air falbh o na teudan ann an A2:A5, rèitichidh sinn na roghainnean mar a leanas:

Mar thoradh air an sin, tha an gnìomh AblebitsRegexRemove air a chur a-steach ann an colbh ùr ri taobh an dàta tùsail agad.

Faodar an gnìomh a chuir a-steach gu dìreach ann an cealla tron ​​bhogsa deasbaid àbhaisteach Insert Function , far a bheil e air a sheòrsachadh fo AblebitsUDFs .<3

Leis gu bheil AblebitsRegexRemove air a dhealbhadh gus teacsa a thoirt air falbh, chan fheum e ach dà argamaid - an t-sreang stòr agus regex. Faodar an dà pharamadair a mhìneachadh gu dìreach ann am foirmle no air an toirt seachad ann an cruth iomraidhean cealla. Ma tha feum air, faodar an gnìomh gnàthaichte seo a chleachdadh còmhla ri feadhainn dhùthchasach sam bith.

Mar eisimpleir, gus beàrnan a bharrachd a ghearradh anns na teudan a thig às, faodaidh tu an gnìomh TRIM a chleachdadh mar phasgan:

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

Sin mar a bheir thu air falbh sreangan ann an Excel a’ cleachdadh abairtean àbhaisteach. Tha mi a' toirt taing dhut airson an leughadh agus tha mi a' coimhead air adhart ri ur faicinn air a' bhlog againn an ath sheachdain!

Luchdaich a-nuas ri fhaighinn

Thoir air falbh sreangan a' cleachdadh regex - eisimpleirean (faidhle .xlsm)

Ultimate Suite - tionndadh deuchainn (faidhle .exe)

a-steach.
  • Pàtran - an abairt àbhaisteach airson a lorg.
  • Ath-àite - an teacsa a thèid a chur na àite. Airson substrings a thoirt air falbh a tha a' freagairt ris a' phàtran, cleachd sreang fhalamh ("") airson a chur na àite.
  • Instance_num (roghainneil) - an t-eisimpleir gu àite. Ma dh'fhàgar air falbh, thèid a h-uile maids a chaidh a lorg a chur na àite (bunaiteach).
  • Match_case (roghainneil) - luach Boole a' comharrachadh am bu chòir dhut a' chùis teacsa a mhaidseadh no a leigeil seachad. Airson maidseadh cùis-mothachail, cleachd TRUE (bunaiteach); airson cùis neo-mhothachail - FALSE.
  • Airson tuilleadh fiosrachaidh, faic an gnìomh RegExpReplace.

    Tip. Ann an cùisean sìmplidh, faodaidh tu caractaran no faclan sònraichte a thoirt air falbh bho cheallan le foirmlean Excel. Ach tha abairtean cunbhalach a' toirt seachad tòrr a bharrachd roghainnean airson seo.

    Mar a bheir thu air falbh sreangan a' cleachdadh abairtean àbhaisteach - eisimpleirean

    Mar a chaidh ainmeachadh gu h-àrd, gus pìosan teacsa a tha co-chosmhail ri pàtran a thoirt air falbh, feumaidh tu an cur nan àite. le sreang falamh. Mar sin, tha foirmle coitcheann a' gabhail a' chruth seo:

    RegExpReplace (teacsa, pàtran, "", [instance_num], [match_case])

    Tha na h-eisimpleirean gu h-ìosal a' sealltainn diofar ghnìomhan a' bhun-bheachd seo.

    Thoir air falbh a h-uile maids no maids sònraichte

    Tha an gnìomh RegExpReplace air a dhealbhadh gus a h-uile fo-thalamh a lorg a tha a rèir regex sònraichte. Tha na tachartasan a bu chòir a thoirt air falbh fo smachd an 4mh argamaid roghnach, leis an ainm instance_num .

    'S e "a h-uile maids" a tha sa bhunait - nuair a bhios an instance_num gnìomhaiche concatenation (&) agus gnìomhan teacsa leithid RIGHT, MID agus LEFT.

    Mar eisimpleir, airson a h-uile àireamh fòn a sgrìobhadh san fhòrmat (123) 456-7890, is e am foirmle:

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

    Càit a bheil B5 mar thoradh air gnìomh RegExpReplace.

    Thoir air falbh caractaran sònraichte a’ cleachdadh regex

    Ann am fear dhe na clasaichean oideachaidh againn, choimhead sinn air mar a bheir thu air falbh caractaran nach eileas ag iarraidh ann an Excel a’ cleachdadh gnìomhan in-thogail agus gnàthaichte. Bidh abairtean cunbhalach a’ dèanamh rudan tòrr nas fhasa! An àite a bhith a' clàradh nan caractaran gu lèir a tha ri sguabadh às, dìreach sònraich an fheadhainn a tha thu airson a chumail :)

    Tha am pàtran stèidhichte air clasaichean charactaran a chaidh àicheadh - tha cùram ga chur am broinn clas charactaran [^ ] gus aon charactar NACH EIL eadar camagan a mhaidseadh. Tha an tomhas-tomhais + ga sparradh air caractaran an dèidh a chèile a mheas mar aon mhaidseadh, gus am bi fear eile ga dhèanamh airson fo-sreang co-ionnan seach airson gach caractar fa leth.

    A rèir do fheumalachdan, tagh aon dhe na regexes a leanas.

    3>

    Gus caractaran neo-alphanumeric a thoirt air falbh, i.e. a h-uile caractar ach a-mhàin litrichean is àireamhan:

    Pàtran : [^0-9a-zA-Z] +

    Gus na caractaran gu lèir a ghlanadh ach a-mhàin litrichean , àireamhan agus beàrnan :

    Pàtran : [^0-9a-zA-Z ]+

    Gus na caractaran gu lèir a sguabadh às ach a-mhàin litrichean , àireamhan agus fo-sgòr , faodaidh tu \ a chleachdadh \ W a tha a’ ciallachadh caractar sam bith NACH EIL caractar alphanumeric nofo-sgòr:

    Pàtran : \W+

    Ma tha thu airson caractairean eile a chumail , m.e. comharran puingeachaidh, cuir am broinn na camagan iad.

    Mar eisimpleir, gus caractar sam bith a thoirt air falbh seach litir, figear, ùine, cromag, no àite, cleachd an regex a leanas:

    Pàtran : [^0-9a-zA-Z\., ]+

    Shoirbhich le seo a' cur às do gach caractar sònraichte, ach tha beàrn-geal a bharrachd ann fhathast.

    Gus seo a chàradh, 's urrainn dhut an gnìomh gu h-àrd a neadachadh ann am fear eile a chuireas aon charactar fànais an àite iomadh àite.

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

    No dìreach cleachd an gnìomh TRIM dùthchasach leis an aon bhuaidh :

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

    Regex gus caractaran neo-àireamhach a thoirt air falbh

    Gus gach caractar neo-àireamhach a sguabadh às sreang, 's urrainn dhut a chleachdadh an dara cuid an fhoirmle fhada seo neo tè dhe na regexes gu math sìmplidh air an liostadh gu h-ìosal.

    Dèan maids ri caractar sam bith NACH EIL na fhigear:

    Pàtran : \D+

    Sguab às caractaran neo-àireamhach a' cleachdadh chlasaichean a chaidh àicheadh:

    Pàtran : [^0-9]+

    Pàtran : [^\d] +

    Gliocas. Mas e an t-amas agad teacsa a thoirt air falbh agus na h-àireamhan a tha air fhàgail a dhòrtadh a-steach do cheallan fa leth no an cur uile ann an aon chill air a sgaradh le delimiter sònraichte, cleachd an gnìomh RegExpExtract mar a chaidh a mhìneachadh ann an Mar a tharraing thu àireamhan bho sreang a’ cleachdadh abairtean cunbhalach.

    Regex gus a h-uile càil a thoirt air falbh às deidh àite

    Gus a h-uile càil a dhubhadh às às deidh àite, cleachd an dàrna cuid an àite ( ) nowhitespace (\s) caractar gus a’ chiad àite a lorg agus .* a mhaidseadh ri caractaran sam bith às a dhèidh.

    Ma tha teudan aon-loidhne agad anns nach eil ach beàrnan àbhaisteach (luach 32 san t-siostam ASCII 7-bit) , chan eil e gu diofar dè am fear de na regexes gu h-ìosal a chleachdas tu. Ma tha sreangan ioma-loidhne ann, nì e diofar.

    Gus a h-uile càil a thoirt air falbh às dèidh caractar fànais , cleachd an regex seo:

    Pàtran :" .*"

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

    Seallaidh am foirmle seo rud sam bith as dèidh a' chiad bheàrn ann an gach loidhne . Airson na toraidhean a thaisbeanadh gu ceart, dèan cinnteach gun tionndaidh thu Wrap Text air.

    Gus a h-uile càil a thoirt dheth às deidh àite geal (a’ gabhail a-steach beàrn, taba, carbad air ais agus loidhne ùr), an regex is:

    Pàtran : \s.*

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

    A chionn 's gu bheil \s a' maidseadh corra sheòrsa beàrnan geala a' gabhail a-steach loidhne ùr (\n), sguabaidh am foirmle seo às às dèidh a' chiad àite ann an cealla, ge bith cia mheud loidhne a th' ann. caractar

    A' cleachdadh na dòighean bhon eisimpleir roimhe, 's urrainn dhut teacsa a sguabadh às às dèidh caractar sam bith a shònraicheas tu.

    Gus gach loidhne a làimhseachadh fa leth:

    Pàtran coitcheann : char.*

    Ann an teudan aon-loidhne, bheir seo air falbh a h-uile càil às dèidh char . Ann an sreathan ioma-loidhne, thèid gach loidhne a phròiseasadh leotha fhèin oir ann am blas VBA Regex, bidh ùine (.) a’ maidseadh caractar sam bith ach a-mhàin fear ùrtoiseach sreang ^, maidsidh sinn neoni no barrachd charactaran neo-fhànais [^ ]* a thèid " +" a leantainn sa bhad le beàrnan no barrachd. Tha am pàirt mu dheireadh ga chur ris gus casg a chur air beàrnan stiùiridh anns na co-dhùnaidhean.

    Gus teacsa a thoirt air falbh ron chiad àite anns gach loidhne, tha am foirmle sgrìobhte sa mhodh bunaiteach "a h-uile maids" ( instance_num air fhàgail air falbh):

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

    Gus teacsa a sguabadh às ron chiad àite sa chiad loidhne, is a h-uile loidhne eile fhàgail slàn, tha an argamaid instance_num suidhichte gu 1:

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

    Regex gus a h-uile càil a thoirt air falbh ron charactar

    Is e an dòigh as fhasa air a h-uile teacsa a thoirt air falbh ro charactar sònraichte le bhith a’ cleachdadh regex mar seo:

    Pàtran coitcheann : ^[^char]*char

    Air eadar-theangachadh gu cànan daonna, tha e ag ràdh: "bho thoiseach sreang air acair le ^ , maids 0 no barrachd charactaran ach a-mhàin char [^char]* suas chun a' chiad tachartas de char .

    Mar eisimpleir, airson an teacsa gu lèir a sguabadh às ron chiad choloin , cleachd an abairt àbhaisteach seo:

    Pàtran : ^[^:]*:

    Gus prìomh àiteachan sna co-dhùnaidhean a sheachnadh, cuir caractar beàrn geal \s* ris an Bheir seo air falbh a h-uile càil g ron chiad choloin agus trim beàrnan sam bith dìreach às a dhèidh:

    Pàtran : ^[^:]*:\s*

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

    Gliocas. A bharrachd air abairtean cunbhalach, tha na dòighean aige fhèin aig Excel gus teacsa a thoirt air falbh le suidheachadh no maids. Gus ionnsachadh mar a choileanas tu an obair le foirmlean dùthchasach,faic Mar a bheir thu air falbh teacsa ro no às deidh caractar ann an Excel.

    Regex gus a h-uile càil a thoirt air falbh ach a-mhàin

    Airson a h-uile caractar a sguabadh às an t-sreang ach an fheadhainn a tha thu airson a chumail, cleachd clasaichean caractaran a chaidh a dhiùltadh.

    Mar eisimpleir, airson a h-uile caractar a thoirt air falbh ach a-mhàin litrichean beaga agus dotagan, is e an regex:

    Pàtran : [^a-z\.]+

    Gu dearbh, b’ urrainn dhuinn dèanamh às aonais an tomhas-tomhais + an seo leis gu bheil an gnìomh againn a’ dol an àite a h-uile càil lorgar maidsean. Bidh an tomhas-tomhais dìreach ga dhèanamh beagan nas luaithe - an àite a bhith a’ làimhseachadh gach caractar fa-leth, bidh thu a’ dol an àite fo-sreang.

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

    Regex gus tagaichean html a thoirt air falbh ann an Excel

    An toiseach, bu chòir a thoirt fa-near nach e cànan àbhaisteach a th’ ann an HTML, agus mar sin chan e parsadh le abairtean cunbhalach an dòigh as fheàrr. Thuirt sin, faodaidh regexes cuideachadh gu cinnteach gus tagaichean a thoirt a-mach às na ceallan agad gus an dàta agad a dhèanamh nas glaine.

    Leis gu bheil tagaichean html an-còmhnaidh air an cur taobh a-staigh camagan ceàrn , lorgaidh tu iad a’ cleachdadh aon de na regexes a leanas.

    Clas air a dhiùltadh:

    Pàtran : ]*>

    An seo, bidh sinn a’ maidseadh camagan ceàrn fosglaidh, air a leantainn le neoni no barrachd tachartas de charactar sam bith ach a-mhàin an bracaid ceàrn dùnaidh [^>]* suas chun a' bhreic ceàrn dùnaidh as fhaisge ort.

    Rannsachadh leisg:

    Pàtran :

    An seo, tha sinn a' maidseadh rud sam bith bhon chiad bhreic fhosglaidh chun a 'chiad bhreic dùnaidh. Tha an comharra ceist a’ toirt air .* a bhith a’ maidseadh cho beag de charactaran riloidhne.

    Gus a h-uile loidhne a phròiseasadh mar aon shreang:

    Pàtran coitcheann : char(.

    Tha Mìcheal Brown dèidheil air teicneòlas sònraichte le dìoghras airson pròiseasan iom-fhillte a dhèanamh nas sìmplidhe a’ cleachdadh innealan bathar-bog. Le còrr air deich bliadhna de eòlas anns a’ ghnìomhachas teignigeach, tha e air urram a thoirt dha na sgilean aige ann am Microsoft Excel agus Outlook, a bharrachd air Google Sheets agus Docs. Tha blog Mhìcheil gu sònraichte airson a chuid eòlais agus eòlais a cho-roinn le daoine eile, a’ toirt seachad molaidhean agus clasaichean-oideachaidh a tha furasta a leantainn airson cinneasachd agus èifeachdas a leasachadh. Ge bith co-dhiù a tha thu nad neach-proifeiseanta eòlach no nad neach-tòiseachaidh, tha blog Mhìcheal a 'tabhann lèirsinn luachmhor agus comhairle phractaigeach airson a bhith a' faighinn a 'chuid as fheàrr às na h-innealan bathar-bog riatanach sin.