Abairtean Cunbhalach (RegExp) ann an Ceist Cumhachd

Ma tha thu co-dhiù beagan eòlach air abairtean cunbhalach, chan fheum thu sanasachd a dhèanamh orra. Mura h-eil thu buileach anns a’ chuspair, is e abairtean cunbhalach (Regular Expressions = RegExp = “regexps” = “cunbhalach”) cànan far a bheilear, a’ cleachdadh charactaran agus riaghailtean sònraichte, a bhith a’ lorg na fo-thiotalan riatanach san teacsa, agus iad air an toirt a-mach. no teacsa eile a chuir na àite. Is e inneal fìor chumhachdach agus breagha a tha seo, òrdugh meudachd nas fheàrr na a h-uile dòigh eile air a bhith ag obair le teacsa.

Tha mi air mìneachadh gu mionaideach mu thràth agus le dòrlach de eisimpleirean bho bheatha mar as urrainn dhut taic faireachdainn cunbhalach a chuir ri Excel a’ cleachdadh macros sìmplidh - mura h-eil thu air an artaigil seo a leughadh, tha mi gu mòr a’ moladh gun leugh thu e mus lean thu air adhart. Lorgaidh tu tòrr rudan ùra, tha mi a’ gealltainn 🙂

Ach, tha a’ cheist fhathast fosgailte - ciamar a chuireas tu ris a’ chomas air abairtean cunbhalach a chleachdadh ann an Power Query? Tha Power Query, gu dearbh, math leis fhèin agus faodaidh e tòrr a dhèanamh le teacsa (gearradh, gluing, glanadh, msaa), ach nam b ’urrainn dhut a dhol thairis air le cumhachd abairtean cunbhalach, bhiodh e dìreach na bhoma.

Gu mì-fhortanach, chan eil gnìomhan togte ann airson a bhith ag obair le RegExps ann an Power Query, agus tha cuideachadh oifigeil Microsoft agus taic theicnigeach a’ freagairt na ceist seo gu àicheil. Ach, tha dòigh timcheall air a’ chuingealachadh seo 🙂

Teisteanas a ’mhodh

Tha am prìomh bheachd sìmplidh a bhith nàire.

Anns an liosta de chomasan Power Query a chaidh a thogail a-steach, tha gnìomh ann Duilleag-lìn. Tha an tuairisgeul air a’ ghnìomh seo air làrach-lìn oifigeil cuideachaidh Microsoft gu math pongail:

Abairtean Cunbhalach (RegExp) ann an Ceist Cumhachd

Air eadar-theangachadh, bhiodh seo: “A’ tilleadh susbaint na sgrìobhainn HTML air a bhriseadh sìos gu na structaran co-phàirteach aige, a bharrachd air riochdachadh den sgrìobhainn iomlan agus a bhodhaig às deidh na tagaichean a thoirt air falbh. ” Tuairisgeul mar sin, gu fìrinneach.

Mar as trice bidh an gnìomh seo air a chleachdadh nuair a thathar a’ toirt a-steach dàta bhon lìon agus thèid a chuir na àite gu fèin-ghluasadach, mar eisimpleir, nuair a thaghas sinn air an taba Dàta Command Bhon eadar-lìon (Dàta - Bhon lìon). Bheir sinn duilleag-lìn don ghnìomh mar argamaid, agus bidh e a’ tilleadh a susbaint thugainn ann an cruth chlàran, às deidh dhuinn na tagaichean gu lèir fhuadach roimhe seo.

Is e an rud NACH EIL an cuideachadh ag ràdh sin a bharrachd air a’ chànan comharrachaidh HTML ghnìomh Duilleag-lìn a’ toirt taic do sgriobtaichean JavaScript, a tha a-nis uile-làthaireach air làraich-lìn air an eadar-lìon. Agus bha JavaScript, an uair sin, air a bhith comasach air obrachadh le abairtean cunbhalach agus tha gnìomhan togte aige airson RegExps! Mar sin gus abairtean cunbhalach a chuir an gnìomh ann an Power Query, feumaidh sinn na gnìomhan Web.Page a bhiadhadh mar argamaid gu prògram beag JavaScript a nì an obair gu lèir airson Power Query.

Cò ris a tha e coltach ann an JavaScript fìor

Tha tòrr chlasaichean oideachaidh mionaideach ann mu bhith ag obair le abairtean cunbhalach ann an JavaScript air an eadar-lìn (mar eisimpleir, aon, dhà).

Ann an ùine ghoirid agus nas sìmplidhe, seallaidh còd JavaScript mar seo:

Abairtean Cunbhalach (RegExp) ann an Ceist Cumhachd

Seo:

  • var str = 'Pàigh bilean 123 agus 789 airson isbean'; - cruthaich caochladair str agus sònraich dha an teacsa tùsail a nì sinn sgrùdadh.
  • var pattern = /d +/gi; - cruthaich faireachdainn cunbhalach agus cuir ann an caochladair e pàtran.

    Bidh an abairt a’ tòiseachadh le slash (/).

    Tha an abairt fhèin an seo, mar eisimpleir, d+ a’ seasamh airson sreath àireamhan sam bith.

    Tron bloigh às deidh an abairt, tha paramadairean sgrùdaidh a bharrachd (atharraichean) - faodar an sònrachadh ann an òrdugh sam bith:

    • g - a’ ciallachadh sgrùdadh cruinneil, ie às deidh dhut maids a lorg, cha bu chòir dhut stad, ach lean air adhart leis an rannsachadh gu deireadh an teacsa. Mura h-eil am mion-atharrachaidh seo air a shuidheachadh, cha till an sgriobt againn ach a’ chiad gheama (123)
    • i - sgrùdadh gun aire a thoirt do chùis litrichean
    • m - sgrùdadh ioma-loidhne (air a chleachdadh nuair a tha an teacsa tùsail air a roinn ann an grunn loidhnichean)
  • var result = str.match(pàtran).join(';'); - dèan sgrùdadh anns an teacsa tùsail (str) leis an abairt àbhaisteach a chaidh a thoirt seachad (pàtran) agus cuir na toraidhean ann an caochladair thoradh air, gan co-chòrdadh le leth-dhuilleag a' cleachdadh an àithne còmhla
  • document.write(toradh); - seall susbaint an caochladair toraidh

Thoir an aire cuideachd gu bheil sreangan teacsa (ach a-mhàin abairtean cunbhalach) ann an JavaScript air an cuartachadh ann an abstolan, chan e briathran mar a tha iad ann an Power Query no VBA.

Aig an toradh, bheir an sgriobt seo dhuinn mar thoradh air na h-àireamhan gu lèir a lorgar san teacsa tùsail:

123, 789

Tha cùrsa goirid JavaScript seachad, tapadh leibh uile. An dòchas gum faigh thu an loidsig 🙂

Tha e fhathast gus an togalach seo a ghluasad gu Power Query.

Lorg agus thoir a-mach gnìomh teacsa a rèir abairt cunbhalach ann an ceist cumhachd

Bidh sinn a’ dèanamh na leanas:

1. Fosgail Excel agus cruthaich Ceist Cumhachd falamh ùr anns an taba Dàta - Faigh dàta / Cruthaich iarrtas - Bho stòran eile - Iarrtas falamh (Dàta - Faigh dàta / Ceist ùr - Bho stòran eile - Ceist falamh). Ma tha seann dhreach agad de Excel 2010-2013 agus Power Query chan eil thu air a thogail a-steach, ach chaidh a chuir a-steach mar thuilleadan air leth, bidh seo uile air an taba Ceist cumhachdAgus chan eil Dàta.

2. Ann an uinneag falamh deasaiche na ceiste a tha a’ fosgladh, anns a’ phannal cheart, cuir a-steach ainm ar gnìomh san àm ri teachd sa bhad (mar eisimpleir, fxRegExpExtract)

Abairtean Cunbhalach (RegExp) ann an Ceist Cumhachd

3. Rachamaid chun an taba Sealladh - Deasaiche adhartach (Seall - Deasaiche Adhartach), bidh sinn a’ sguabadh às a’ chòd M gu lèir den iarrtas falamh agus a’ cuir a-steach còd ar sàr-obair an sin:

Abairtean Cunbhalach (RegExp) ann an Ceist Cumhachd

Cum sùil air do làmhan:

Anns a’ chiad loidhne, tha sinn ag ràdh gum bi trì argamaidean teacsa aig ar gnìomh: txt - an teacsa tùsail ga sgrùdadh, regex - pàtran faireachdainn cunbhalach, delim - caractar delimiter airson toraidhean a thaisbeanadh.

An ath rud canar sinn an gnìomh Duilleag-lìn, a’ cruthachadh a’ chòd JavaScript a tha air a mhìneachadh gu h-àrd san argamaid aige. Bidh sinn a’ pasgadh agus a’ cur nan argamaidean caochlaideach againn a-steach don chòd.

Earrann:

[Dàta]{0}[Clann]{/0}[Clann]{/1}[Text]{0}

Tha feum air “tuiteam troimhe” a-steach don chlàr leis na toraidhean a tha a dhìth oirnn. Is e am puing gu bheil an gnìomh Duilleag-lìn mar thoradh air an sin, bidh e a’ toirt a-mach grunn chlàran neadachaidh a bhios ag ath-aithris structar duilleag lìn. Às aonais a’ phìos M-còd seo, bheireadh ar gnìomh seo a-mach:

Abairtean Cunbhalach (RegExp) ann an Ceist Cumhachd

... agus dh'fheumadh sinn am facal a bhriogadh grunn thursan Clàr, an dèidh a chèile “a’ tuiteam troimhe ”a-steach do bhùird neadachaidh chloinne ann an colbhan clann:

Abairtean Cunbhalach (RegExp) ann an Ceist Cumhachd

An àite a h-uile cuòt seo, bidh sinn sa bhad a’ nochdadh ann an còd ar gnìomh a tha a’ neadachadh clàr agus colbh (teacsa) feumaidh sinn.

An seo, gu dearbh, tha na dìomhaireachdan uile. Tha e fhathast gus am putan a bhrùthadh Crìochnaich san uinneig deasaiche adhartach, far an do chuir sinn a-steach ar còd, agus faodaidh tu a dhol air adhart chun an fheadhainn as blasta - feuch ar gnìomh aig an obair.

Seo eisimpleirean de shìol no dhà.

Eisimpleir 1. A 'faighinn air ais àireamh a' chunntais agus an ceann-latha bhon tuairisgeul pàighidh

Tha aithris banca againn le tuairisgeul (adhbhar) de phàighidhean, far am feum thu àireamhan agus cinn-latha nam fàirdealan pàighte a tharraing a-mach gu colbhan fa leth:

Abairtean Cunbhalach (RegExp) ann an Ceist Cumhachd

Bidh sinn a’ luchdachadh a’ bhùird gu Power Query san dòigh àbhaisteach troimhe Dàta – Bho Chlàr/Raon (Dàta - Bho Tcomasach/Raingeal).

An uairsin cuiridh sinn colbh àireamhaichte ris a 'ghnìomh againn tro Cuir colbh ris - cuir fòn gu gnìomh gnàthaichte (Cuir colbh ris - cuir a-steach gnìomh gnàthaichte) agus cuir a-steach na h-argamaidean aige:

Abairtean Cunbhalach (RegExp) ann an Ceist Cumhachd

Mar abairt àbhaisteach (argamaid regex) teamplaid a chleachdas sinn:

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

… eadar-theangachadh gu cànan daonna a’ ciallachadh: 

àireamhan bho 3 gu 5 figear (àireamhan cunntais)

or

pìosan den fhoirm “àireamh 2-bit - puing - àireamh 2-bit - àireamh puing - àireamh 4-bit”, is e sin, cinn-latha an fhoirm DD.MM.YYYY.

Mar charactar delimiter (argamaid delim) cuir a-steach leth-dhuilleag.

Às dèidh dhut briogadh air OK bidh an gnìomh draoidheachd againn a’ dèanamh mion-sgrùdadh air a h-uile dàta tùsail a rèir ar faireachdainn cunbhalach agus a’ cruthachadh colbh dhuinn leis na h-àireamhan a chaidh a lorg agus cinn-latha nam fàirdealan:

Abairtean Cunbhalach (RegExp) ann an Ceist Cumhachd

Tha e fhathast airson a sgaradh le semicolon a’ cleachdadh an àithne Dachaigh - Colbh Roinnte - Le Delimiter (Dachaigh - Colbh roinnte - Le delimiter) agus gheibh sinn na tha sinn ag iarraidh:

Abairtean Cunbhalach (RegExp) ann an Ceist Cumhachd

Maise!

Eisimpleir 2: Thoir a-mach seòlaidhean puist-d bho theacsa

Seach gu bheil an clàr a leanas againn mar an dàta tùsail:

Abairtean Cunbhalach (RegExp) ann an Ceist Cumhachd

... às am feum sinn na seòlaidhean puist-d a lorgar an sin a tharraing a-mach (airson soilleireachd, chomharraich mi iad ann an dearg san teacsa).

Mar a bha san eisimpleir roimhe, bidh sinn a’ luchdachadh a’ bhùird gu Power Query san dòigh àbhaisteach tro Dàta – Bho Chlàr/Raon (Dàta - Bho Tcomasach/Raingeal).

An uairsin cuiridh sinn colbh àireamhaichte ris a 'ghnìomh againn tro Cuir colbh ris - cuir fòn gu gnìomh gnàthaichte (Cuir colbh ris - cuir a-steach gnìomh gnàthaichte) agus cuir a-steach na h-argamaidean aige:

Abairtean Cunbhalach (RegExp) ann an Ceist Cumhachd

Is e obair nas duilghe a th’ ann a bhith a’ parsadh sheòlaidhean post-d agus tha dòrlach de abairtean cunbhalach de dhiofar ìrean de trom-laighe ann airson fuasgladh fhaighinn air. Chleachd mi aon de na roghainnean sìmplidh - nach eil air leth freagarrach, ach gu math ag obair sa mhòr-chuid de chùisean:

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

Mar sgaradh (delim) faodaidh tu a dhol a-steach do leth-dhuilleag agus àite.

Brùth air OK agus gheibh sinn colbh le seòlaidhean puist-d air an toirt a-mach às an teacsa tùsail “brochan”:

Abairtean Cunbhalach (RegExp) ann an Ceist Cumhachd

Draoidheachd!

PS

Mar a tha an abairt ag ràdh: “Chan eil leithid de rud math ann nach b’ urrainn a dhèanamh eadhon nas fheàrr. ” Tha Power Query fionnar leis fhèin, agus nuair a thèid a chur còmhla ri abairtean cunbhalach, bheir e dhuinn cumhachd agus sùbailteachd gu tur neo-phractaigeach ann a bhith a’ giullachd dàta teacsa sam bith. Tha mi an dòchas gun cuir Microsoft a-steach taic RegExp uaireigin ann an Power Query agus ùrachaidhean Power BI agus gum bi na dannsan gu h-àrd le tambourine gu bhith na rud san àm a dh’ fhalbh. Uill, airson a-nis, tha.

Tha mi cuideachd airson a chuir ris gu bheil e goireasach cluich le abairtean cunbhalach air an làrach https://regexr.com/ - dìreach anns an deasaiche air-loidhne. An sin anns an roinn Pàtranan Coimhearsnachd Tha àireamh mhòr de ràithean cunbhalach deiseil airson a h-uile tachartas. Dèan deuchainn - tha a h-uile cumhachd abairtean cunbhalach a-nis aig do sheirbheis ann an Power Query!

  • Dè a th’ ann an abairtean cunbhalach (RegExp) agus mar a chleachdas tu iad ann an Excel
  • Rannsachadh teacsa fuzzy ann an Power Query
  • A’ cruinneachadh chlàran bho dhiofar fhaidhlichean a’ cleachdadh Power Query

Leave a Reply