Léirithe Rialta (RegExp) sa Cheist Cumhachta

Má tá tú ar a laghad beagán eolach ar nathanna rialta, ansin ní gá duit iad a fhógairt. Mura bhfuil tú sách san ábhar, is teanga í na habairtí rialta (Sloinn Rialta = RegExp = “regexps” = “rialta”) ina ndéantar cuardach ar na fotheidil riachtanacha sa téacs, trí úsáid a bhaint as carachtair agus rialacha speisialta. nó téacs eile a chur ina ionad. Is uirlis an-chumhachtach agus álainn í seo, ord méide níos fearr ná gach bealach eile chun oibriú le téacs.

Chuir mé síos go mion cheana féin agus le go leor samplaí ón saol conas is féidir leat tacaíocht slonn rialta a chur le Excel ag baint úsáide as macraí simplí - mura bhfuil an t-alt seo léite agat, molaim go mór duit é a léamh sula leanann tú ar aghaidh. Gheobhaidh tú amach a lán rudaí nua, ráthaíocht agam 🙂

Mar sin féin, tá an cheist fós oscailte - conas an cumas a chur leis nathanna rialta a úsáid i Power Query? Tá Power Query, ar ndóigh, go maith leis féin agus is féidir go leor a dhéanamh le téacs (gearradh, gluing, glanadh, etc.), ach dá dtiocfadh leat é a thrasnú le cumhacht nathanna rialta, ní bheadh ​​​​ann ach buama.

Ar an drochuair, níl aon fheidhmeanna ionsuite ann le bheith ag obair le RegExps in Power Query, agus freagraíonn cabhair oifigiúil Microsoft agus tacaíocht theicniúil an cheist seo go diúltach. Mar sin féin, tá bealach thart ar an teorannú seo 🙂

É croílár an mhodha

Is é an príomh-smaoineamh simplí náire.

Sa liosta de na cumais Iarratas Cumhachta ionsuite, tá feidhm Leathanach gréasáin. Tá an cur síos ar an bhfeidhm seo ar shuíomh oifigiúil cabhrach Microsoft thar a bheith beacht:

Léirithe Rialta (RegExp) sa Cheist Cumhachta

Aistrithe, is é seo a bheadh ​​mar seo a leanas: “Tugann sé ar ais inneachar an doiciméid HTML briste síos ina struchtúir chomhpháirte, chomh maith le léiriú ar an doiciméad iomlán agus a chorp tar éis na clibeanna a bhaint.” Mar sin-sin cur síos, frankly.

De ghnáth úsáidtear an fheidhm seo nuair a bhíonn sonraí á n-iompórtáil ón ngréasán agus cuirtear in ionad é go huathoibríoch, mar shampla, nuair a roghnaíonn muid ar an táb Dáta Ceannasaíocht Ón Idirlíon (Sonraí — Ón ngréasán). Tugaimid leathanach gréasáin don fheidhm mar argóint, agus cuireann sé a bhfuil ann ar ais chugainn i bhfoirm táblaí, tar éis na clibeanna go léir a ghlanadh roimhe seo.

Is é an rud NÍ deir an cúnamh ná sin sa bhreis ar an teanga marcála HTML fheidhm Leathanach gréasáin tacaíonn scripteanna JavaScript, atá uileláithreach anois ar láithreáin ghréasáin ar an Idirlíon. Agus bhí JavaScript, ar a seal, in ann oibriú le habairtí rialta i gcónaí agus tá feidhmeanna ionsuite aige do RegExps! Mar sin, chun nathanna cainte rialta a chur i bhfeidhm in Power Query, beidh orainn na feidhmeanna Web.Page a bheathú mar argóint le clár beag JavaScript a dhéanfaidh an obair ar fad do Power Query.

An chuma atá air i javascript íon

Tá go leor ranganna teagaisc mionsonraithe ar oibriú le habairtí rialta i JavaScript ar an Idirlíon (mar shampla, ceann amháin, dhá cheann).

I mbeagán focal agus simplithe, beidh an cód JavaScript cuma mar seo:

Léirithe Rialta (RegExp) sa Cheist Cumhachta

Anseo:

  • var str = 'Íoc billí 123 agus 789 le haghaidh ispíní'; – athróg a chruthú str agus sann dó an buntéacs a ndéanfaimid anailís air.
  • patrún var = /d +/gi; – slonn rialta a chruthú agus a chur in athróg patrún.

    Tosaíonn an slonn le slais (/).

    Is é an abairt féin anseo, mar shampla, ná d+ seasann sé d’aon seicheamh digití.

    Tríd an gcodán tar éis an slonn, tá paraiméadair cuardaigh breise (modhnóirí) - is féidir iad a shonrú in aon ord:

    • g – ciallaíonn sé cuardach domhanda, .i. tar éis duit meaits a aimsiú, níor cheart duit stopadh, ach leanúint leis an gcuardach go dtí deireadh an téacs. Mura bhfuil an modhnóir seo socraithe, ní thabharfaidh ár script ar ais ach an chéad chluiche (123)
    • i – cuardach gan aird ar chás litreacha
    • m – cuardach illíne (a úsáidtear nuair a roinntear an téacs foinse ina roinnt línte)
  • var toradh = str.match(pattern).join(';'); – cuardach a dhéanamh sa bhuntéacs (str) leis an slonn rialta a thugtar (patrún) agus na torthaí a chur in athróg mar thoradh ar, agus leathstad á gcomhtháthú acu leis an ordú páirt a ghlacadh
  • document.write(toradh); – inneachar na hathróige toraidh a thaispeáint

Tabhair faoi deara freisin go bhfuil teaghráin téacs (gan nathanna rialta san áireamh) i JavaScript faoi iamh i apostrophes, ní Sleachta mar atá siad i Power Query nó VBA.

Ag an aschur, tabharfaidh an script seo dúinn mar thoradh ar na huimhreacha go léir atá le fáil sa bhuntéacs:

123, 789

Tá an gearrchúrsa JavaScript thart, go raibh maith agat go léir. Tá súil agam go bhfaighidh tú an loighic 🙂

Tá sé fós chun an tógáil seo a aistriú go Power Query.

Feidhm Téacs a Chuardach agus a Sliocht de réir Slonn Rialta i gCeist Chumhachta

Déanaimid na rudaí seo a leanas:

1. Oscail Excel agus cruthaigh Iarratas Cumhachta folamh nua sa chluaisín Sonraí – Faigh sonraí / Cruthaigh iarratas – Ó fhoinsí eile – Iarratas folamh (Sonraí — Faigh sonraí / Iarratas nua — Ó fhoinsí eile — Ceist bhán). Má tá seanleagan de Excel 2010-2013 agus Power Query agat nach bhfuil ionsuite agat, ach gur suiteáladh é mar bhreiseán ar leith, ansin beidh sé seo ar fad ar an táb Ceist ChumhachtaAgus ní Dáta.

2. I bhfuinneog folamh an eagarthóra fiosrúcháin a osclaíonn, sa phainéal ar dheis, cuir isteach láithreach ainm ár bhfeidhme sa todhchaí (mar shampla, fxRegExpExtract)

Léirithe Rialta (RegExp) sa Cheist Cumhachta

3. A ligean ar dul go dtí an táb Amharc - Ardeagarthóir (Amharc - Ardeagarthóir), scriosaimid an M-chód iomlán den iarratas folamh agus greamaigh cód ár sárfheidhm ansin:

Léirithe Rialta (RegExp) sa Cheist Cumhachta

Féach ar do lámha:

Sa chéad líne, deirimid go mbeidh trí argóint téacs ag ár bhfeidhm: txt – an buntéacs atá á anailísiú, regex – patrún slonn rialta, delim — carachtar teorannóra chun torthaí a thaispeáint.

Ar aghaidh tugaimid an fheidhm Leathanach gréasáin, ag foirmiú an chóid JavaScript a gcuirtear síos air thuas ina argóint. Déanaimid ár n-argóintí athraitheacha a ghreamú agus a ionadú isteach sa chód.

Mír:

[Sonraí]{/0}[Leanaí]{/0}[Leanaí]{/1}[Téacs]{/0}

… le “titim tríd” isteach sa tábla leis na torthaí a theastaíonn uainn. Is é an pointe go bhfuil an fheidhm Leathanach gréasáin mar thoradh air sin, táirgeann sé roinnt táblaí neadaithe a athrá ar struchtúr leathanach gréasáin. Gan an píosa M-chód seo, dhéanfadh ár bhfeidhm an méid seo a leanas a aschur:

Léirithe Rialta (RegExp) sa Cheist Cumhachta

…agus bheadh ​​orainn an focal a chliceáil arís agus arís eile tábla, ag “titim tríd” i ndiaidh a chéile isteach i dtáblaí neadaithe leanaí i gcolúin Leanaí:

Léirithe Rialta (RegExp) sa Cheist Cumhachta

In ionad an luachana seo go léir, cuirimid in iúl láithreach i gcód ár bhfeidhme cén tábla agus colún neadaithe (Téacs) caithfimid.

Anseo, i ndáiríre, tá na rúin. Tá sé fós a brúigh an cnaipe Críochnaigh san fhuinneog eagarthóir chun cinn, áit ar chuir muid ár gcód isteach, agus is féidir leat dul ar aghaidh chuig an gceann is delicious - bain triail as ár bhfeidhm ag an obair.

Seo cúpla sampla síolta.

Sampla 1. Uimhir an chuntais agus an dáta a aisghabháil ón tuairisc íocaíochta

Tá ráiteas bainc againn le cur síos (cuspóir) ar íocaíochtaí, áit ar gá duit uimhreacha agus dátaí na sonrasc íoctha a tharraingt amach i gcolúin ar leith:

Léirithe Rialta (RegExp) sa Cheist Cumhachta

Déanaimid an tábla a luchtú isteach i Power Query ar an mbealach caighdeánach tríd Sonraí – Ó Tábla/Raon (Sonraí — Ó Tábalta/Raingeal).

Ansin cuirimid colún ríofa lenár bhfeidhm via Cuir Colún leis - Glaoigh ar Fheidhm an Chustaim (Cuir Colún leis - agairt Feidhm Chustaim) agus cuir isteach a hargóintí:

Léirithe Rialta (RegExp) sa Cheist Cumhachta

Mar abairt rialta (argóint regex) teimpléad a úsáidimid:

(d{3,5}|d{2}.d{2}.d{4})

… aistrithe go teanga dhaonna a chiallaíonn: 

uimhreacha ó 3 go 5 dhigit (uimhreacha cuntais)

or

blúirí den fhoirm “Uimhir 2 ghiotán – pointe – uimhir 2 ghiotán – pointe – uimhir 4 ghiotán”, is é sin, dátaí na foirme DD.MM.YYYY.

Mar charachtar teorannóir (argóint delim) dul isteach i leathstad.

Tar éis duit cliceáil ar OK déanann ár bhfeidhm draíochta anailís ar na sonraí tosaigh go léir de réir ár slonn rialta agus cruthaíonn sé colún dúinn le huimhreacha aimsithe agus dátaí na sonrasc:

Léirithe Rialta (RegExp) sa Cheist Cumhachta

Tá sé fós chun é a scaradh trí leathstad leis an ordú Baile — Colún Scoilte — De réir Teorainneora (Baile - Scoilt colún - De réir teorannóir) agus faighimid cad a bhí uainn:

Léirithe Rialta (RegExp) sa Cheist Cumhachta

Áilleacht!

Sampla 2: Bain seoltaí ríomhphoist as téacs

Cuir i gcás go bhfuil an tábla seo a leanas againn mar shonraí tosaigh:

Léirithe Rialta (RegExp) sa Cheist Cumhachta

... ón áit a gcaithfimid na seoltaí ríomhphoist a fhaightear ansin a tharraingt amach (ar mhaithe le soiléireacht, leag mé béim orthu i ndath dearg sa téacs).

Mar a bhí sa sampla roimhe seo, lódálann muid an tábla i gCeist Cumhachta ar an mbealach caighdeánach trí Sonraí – Ó Tábla/Raon (Sonraí — Ó Tábalta/Raingeal).

Ansin cuirimid colún ríofa lenár bhfeidhm via Cuir Colún leis - Glaoigh ar Fheidhm an Chustaim (Cuir Colún leis - agairt Feidhm Chustaim) agus cuir isteach a hargóintí:

Léirithe Rialta (RegExp) sa Cheist Cumhachta

Is tasc níos deacra é seoltaí ríomhphoist a pharsáil agus tá go leor léirithe rialta de leibhéil éagsúla tromluí le réiteach. Bhain mé úsáid as ceann de na roghanna simplí - ní idéalach, ach ag obair go leor i bhformhór na gcásanna:

[w|.|-]*@w*.[w|.]*

Mar dheighilteoir (delim) is féidir leat leathstad agus spás a chur isteach.

Cliceáil ar OK agus faigheann muid colún le seoltaí ríomhphoist a bhaintear as an téacs bunaidh “leite”:

Léirithe Rialta (RegExp) sa Cheist Cumhachta

Draíocht!

PS

Mar a deir an rá: "Níl aon rud maith nach bhféadfaí a dhéanamh níos fearr fós." Tá Power Query fionnuar leis féin, agus nuair a chuirtear le chéile é le habairtí rialta, tugann sé cumhacht agus solúbthacht go hiomlán neamhréadúil dúinn maidir le haon sonraí téacs a phróiseáil. Tá súil agam go gcuirfidh Microsoft tacaíocht RegExp le nuashonruithe Power Query agus Power BI lá éigin agus beidh na damhsaí thuas go léir le tambóirín ina gcuid den am atá caite. Bhuel, do anois, tá.

Ba mhaith liom a rá freisin go bhfuil sé áisiúil imirt le habairtí rialta ar an suíomh https://regexr.com/ - díreach san eagarthóir ar líne. Tá sa rannóg Patrúin Pobail Tá líon mór séasúir réamhdhéanta rialta ann do gach ócáid. Turgnamh - tá gach cumhacht nathanna rialta ar do sheirbhís anois i Power Query!

  • Cad iad nathanna rialta (RegExp) agus conas iad a úsáid in Excel
  • Cuardach téacs doiléir in Power Query
  • Táblaí a chur le chéile ó chomhaid éagsúla ag baint úsáide as Power Query

Leave a Reply