Nā Manaʻo Maʻamau (RegExp) ma Power Query

Inā maʻa iki ʻoe i nā ʻōlelo maʻamau, a laila ʻaʻole pono ʻoe e hoʻolaha iā lākou. Inā ʻaʻole ʻoe i ke kumuhana, a laila ʻo nā ʻōlelo maʻamau (Regular Expressions = RegExp = "regexps" = "regulars") he ʻōlelo kahi, me ka hoʻohana ʻana i nā huaʻōlelo kūikawā a me nā lula, e ʻimi ʻia nā substrings pono i loko o ka kikokikona, ua unuhi ʻia lākou. a i ʻole i pani ʻia me nā kikokikona ʻē aʻe . He mea hana ikaika loa kēia, he ʻoi aku ka nui ma mua o nā ʻano hana ʻē aʻe a pau me ka kikokikona.

Ua wehewehe au i ka kikoʻī a me ka pūʻulu o nā hiʻohiʻona o ke ola pehea e hiki ai iā ʻoe ke hoʻohui i ke kākoʻo hōʻike maʻamau iā Excel me ka hoʻohana ʻana i nā macros maʻalahi - inā ʻaʻole ʻoe i heluhelu i kēia ʻatikala, makemake nui wau e heluhelu ʻoe ma mua o ka hoʻomau. E ʻike ʻoe i nā mea hou he nui, hōʻoia wau 🙂

Eia nō naʻe, wehe ʻia ka nīnau - pehea e hoʻohui ai i ka hiki ke hoʻohana i nā ʻōlelo maʻamau i Power Query? ʻO ka Power Query, ʻoiaʻiʻo, maikaʻi ia iā ia iho a hiki ke hana nui me ka kikokikona (ʻokiʻoki, gluing, hoʻomaʻemaʻe, a me nā mea ʻē aʻe), akā inā hiki iā ʻoe ke hele me ka mana o nā ʻōlelo maʻamau, he pōkā wale nō ia.

ʻO ka mea pōʻino, ʻaʻohe hana i kūkulu ʻia no ka hana ʻana me RegExps ma Power Query, a ʻo ke kōkua kūhelu Microsoft a me ke kākoʻo ʻenehana e pane i kēia nīnau ma ka maikaʻi ʻole. Eia naʻe, aia kahi ala e pili ana i kēia palena 🙂

ʻO ke kumu o ka hana

He mea maʻalahi ka manaʻo nui i ka hilahila.

Ma ka papa inoa o nā mana Query Power i kūkulu ʻia, aia kahi hana Pūnaewele.Aoʻao. ʻO ka wehewehe ʻana o kēia hana ma ka pūnaewele kōkua Microsoft mana he pōkole loa:

Nā Manaʻo Maʻamau (RegExp) ma Power Query

Unuhi ʻia, penei: "Hoʻihoʻi i nā mea o ka palapala HTML i wāwahi ʻia i loko o kāna mau ʻāpana, a me kahi hōʻike o ka palapala piha a me kona kino ma hope o ka wehe ʻia ʻana o nā hōʻailona." ʻO ka wehewehe ʻana, ʻoiaʻiʻo.

Hoʻohana maʻamau kēia hana i ka lawe ʻana i ka ʻikepili mai ka pūnaewele a hoʻololi ʻia, no ka laʻana, ke koho mākou ma ka pā. 'Ikepili E kauoha aku Mai ka Pūnaewele (ʻIkepili — Mai ka punaewele). Hāʻawi mākou i ka hana i kahi ʻaoʻao pūnaewele ma ke ʻano he hoʻopaʻapaʻa, a hoʻihoʻi ia i kāna mau ʻike iā mākou ma ke ʻano o nā papa, ma mua o ka holoi ʻana i nā hōʻailona āpau.

ʻO ka mea a ke kōkua ʻaʻole i ʻōlelo ʻo ia ka hoʻohui ʻana i ka ʻōlelo markup HTML kuleana pili i ka Pūnaewele.Aoʻao kākoʻo i nā palapala JavaScript, i kēia manawa ma nā wahi āpau ma ka Pūnaewele. A ua hiki i ka JavaScript ke hana me nā ʻōlelo maʻamau a loaʻa nā hana i kūkulu ʻia no RegExps! No laila e hoʻokō i nā ʻōlelo maʻamau i Power Query, pono mākou e hānai i nā hana Web.Page ma ke ʻano he hoʻopaʻapaʻa i kahi polokalamu JavaScript liʻiliʻi e hana i nā hana āpau no Power Query.

He aha kona ʻano ma ka JavaScript maʻemaʻe

Nui nā kumu aʻo kikoʻī e pili ana i ka hana ʻana me nā ʻōlelo maʻamau ma JavaScript ma ka Pūnaewele (e like me hoʻokahi, ʻelua).

I ka pōkole a me ka maʻalahi, e like me kēia ka code JavaScript:

Nā Manaʻo Maʻamau (RegExp) ma Power Query

Maʻaneʻi:

  • var str = 'E uku i nā bila 123 a me 789 no ka sausage'; - hana i kahi loli p a hāʻawi i ka kikokikona kumu a mākou e kālailai ai.
  • var pattern = /d+/gi; - hana i kahi ʻōlelo maʻamau a hoʻokomo i loko o kahi loli kumu.

    Hoʻomaka ka ʻōlelo me kahi kī (/).

    ʻO ka ʻōlelo ponoʻī ma ʻaneʻi, no ka laʻana, ʻo ia d+ kū no kēlā me kēia kaʻina o nā huahelu.

    Ma o ka hakina ma hope o ka huaʻōlelo, aia nā ʻāpana hulina hou (nā mea hoʻololi) - hiki ke kuhikuhi ʻia i kēlā me kēia kauoha:

    • g - ʻo ia hoʻi ka huli honua, ʻo ia hoʻi ma hope o ka loaʻa ʻana o kahi pāʻani, ʻaʻole pono ʻoe e hoʻōki, akā e hoʻomau i ka ʻimi a hiki i ka hopena o ka kikokikona. Inā ʻaʻole i hoʻonohonoho ʻia kēia mea hoʻololi, a laila e hoʻihoʻi wale kā mākou palapala i ka pāʻani mua (123)
    • i - huli me ka nānā ʻole i ka hihia o nā leka
    • m - ʻimi laina lehulehu (hoʻohana ʻia i ka wā e māhele ʻia ai ke kumu kumu i nā laina he nui)
  • var hopena = str.match(pattern).join(';'); - hana i kahi hulina ma ke kikokikona kumu (p) e ka ʻōlelo maʻamau i hāʻawi ʻia (kumu) a hoʻokomo i nā hopena i loko o kahi loli result, hoʻohui iā lākou me kahi semicolon me ke kauoha hui
  • document.write(hopena); - hōʻike i nā mea o ka hopena hopena

E hoʻomaopopo hoʻi, ua hoʻopaʻa ʻia nā kaula kikokikona (ʻaʻole me nā ʻōlelo maʻamau) ma JavaScript i loko o nā apostrophe, ʻaʻole nā ​​puʻupuʻu e like me ka Power Query a i ʻole VBA.

Ma ka hopena, e hāʻawi mai kēia palapala iā mākou i nā helu āpau i loaʻa i ka kikokikona kumu:

123, 789

Ua pau ka papa pōkole JavaScript, mahalo iā ʻoukou a pau. Manaʻolana e loaʻa iā ʻoe ka loiloi 🙂

Ke waiho nei ka hoʻololi ʻana i kēia kūkulu ʻana i Power Query.

Huli a unuhi i ka hana kikokikona ma ka ʻōlelo maʻamau i ka nīnau mana

Hana mākou i kēia:

1. E wehe i ka Excel a hana i kahi Query Power hou i ka pā ʻIkepili - Loaʻa i ka ʻikepili / hana noi - Mai nā kumu ʻē aʻe - Noi ʻole (ʻIkepili — Loaʻa i ka ʻikepili / nīnau hou — Mai nā kumu ʻē aʻe — Nīnau blank). Inā loaʻa iā ʻoe kahi mana kahiko o Excel 2010-2013 a me Power Query ʻaʻole āu i kūkulu ʻia, akā ua hoʻokomo ʻia ma ke ʻano he hoʻohui ʻokoʻa, a laila aia kēia mau mea ma ka pā. Nīnau UilaA ʻaʻole 'Ikepili.

2. Ma ka puka aniani ʻole o ka mea hoʻoponopono nīnau e wehe ana, ma ka ʻaoʻao ʻākau, e hoʻokomo koke i ka inoa o kā mākou hana e hiki mai ana (no ka laʻana, fxRegExpExtract)

Nā Manaʻo Maʻamau (RegExp) ma Power Query

3. E hele kāua i ka pā Nānā – Lunahooponopono Kiʻekiʻe (Nānā — Luna Hoʻoponopono Kiʻekiʻe), holoi mākou i ka M-code holoʻokoʻa o ka noi nele a hoʻopili i ke code o kā mākou superfunction ma laila:

Nā Manaʻo Maʻamau (RegExp) ma Power Query

E nānā i kou mau lima:

Ma ka laina mua, ʻōlelo mākou e loaʻa i kā mākou hana ʻekolu mau ʻōlelo hoʻopaʻapaʻa: txt - ke kālailai ʻia nei ka kikokikona kumu, regex - ke ʻano hōʻike maʻamau, delim — ʻano hoʻokaʻawale no ka hōʻike ʻana i nā hopena.

A laila kapa mākou i ka hana Pūnaewele.Aoʻao, e hana ana i ke code JavaScript i wehewehe ʻia ma luna nei ma kāna hoʻopaʻapaʻa. Hoʻopili mākou a hoʻololi i kā mākou mau manaʻo hoʻololi i loko o ke code.

Māhele:

[ʻIkepili]{0}[Na keiki]{0}[Na keiki]{1}[Kiʻiʻōlelo]{0}

... pono e "hāʻule" i ka papaʻaina me nā hopena e pono ai mākou. ʻO ka manaʻo o ka hana Pūnaewele.Aoʻao ʻO ka hopena, hoʻopuka ʻo ia i nā papa pūnana e hana hou i ke ʻano o kahi ʻaoʻao pūnaewele. Me ka ʻole o kēia ʻāpana M-code, e hoʻopuka kā mākou hana i kēia:

Nā Manaʻo Maʻamau (RegExp) ma Power Query

… a pono mākou e kaomi i ka huaʻōlelo i nā manawa he nui papaʻaina, "e hāʻule ana" i loko o nā papa ʻaina keiki ma nā kolamu keiki:

Nā Manaʻo Maʻamau (RegExp) ma Power Query

Ma kahi o kēia ʻōlelo a pau, hōʻike koke mākou i ke code o kā mākou hana i hoʻopaʻa ʻia i ka papa a me ke kolamu (Text) pono mākou.

Eia, ʻoiaʻiʻo, nā mea huna a pau. Ua koe e kaomi i ke pihi a pau ma ka pukaaniani luna hoʻoponopono kiʻekiʻe, kahi a mākou i hoʻokomo ai i kā mākou code, a hiki iā ʻoe ke hele i ka mea ʻono loa - e hoʻāʻo i kā mākou hana ma ka hana.

Eia kekahi mau hiʻohiʻona hua.

Laʻana 1. Ke kiʻi ʻana i ka helu moʻokāki a me ka lā mai ka wehewehe ʻana i ka uku

Loaʻa iā mākou kahi ʻōlelo panakō me kahi wehewehe (kumu) o nā uku, kahi e pono ai ʻoe e huki i nā helu a me nā lā o nā invoice i uku ʻia i nā kolamu ʻokoʻa:

Nā Manaʻo Maʻamau (RegExp) ma Power Query

Hoʻouka mākou i ka pākaukau i Power Query ma ke ala maʻamau ʻIkepili - Mai ka Papa/Paʻi (ʻIkepili - Mai Thiki/Rʻānela).

A laila hoʻohui mākou i kahi kolamu helu me kā mākou hana ma Hoʻohui i ke kolamu - Kāhea i ka hana maʻamau (Hoʻohui i ke kolamu — Kāhea i ka hana maʻamau) a e hoʻokomo i kāna mau hoʻopaʻapaʻa:

Nā Manaʻo Maʻamau (RegExp) ma Power Query

Ma ke ʻano he ʻōlelo maʻamau (hoʻopaʻapaʻa regex) hoʻohālike mākou e hoʻohana nei:

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

… unuhi ʻia i ka ʻōlelo kanaka ʻo ia hoʻi: 

helu mai 3 a 5 mau huahelu (helu helu)

or

nā ʻāpana o ke ʻano "helu 2-bit - helu - helu 2-bit - helu - helu 4-bit", ʻo ia hoʻi, nā lā o ke ʻano DD.MM.YYYY.

Ma ke ʻano he mea hoʻokaʻawale (hoʻopaʻapaʻa delim) e hookomo i kahi kiko kiko.

Ma hope o ke kaomiʻana OK kā mākou hana kilokilo e kālailai i nā ʻikepili mua a pau e like me kā mākou ʻōlelo maʻamau a hana i kolamu no mākou me nā helu i loaʻa a me nā lā o nā invoices:

Nā Manaʻo Maʻamau (RegExp) ma Power Query

E hoʻokaʻawale iā ia ma ka semicolon me ke kauoha Home — Kona Māhele — Na ka Delimiter (Home — Koluma hoʻokaʻawale — Ma ka wehe ʻana) a loaʻa iā mākou ka mea a mākou i makemake ai:

Nā Manaʻo Maʻamau (RegExp) ma Power Query

Maikaʻi!

Laʻana 2: Wehe i nā leka uila mai ka kikokikona

Inā paha e loaʻa iā mākou ka papaʻaina ma ke ʻano he ʻikepili mua:

Nā Manaʻo Maʻamau (RegExp) ma Power Query

... mai kahi e pono ai mākou e huki i nā leka uila i loaʻa ma laila (no ka maopopo, ua hōʻike wau iā lākou i ka ʻulaʻula ma ka kikokikona).

E like me ka laʻana mua, hoʻouka mākou i ka papaʻaina i Power Query ma ke ala maʻamau ma o ʻIkepili - Mai ka Papa/Paʻi (ʻIkepili - Mai Thiki/Rʻānela).

A laila hoʻohui mākou i kahi kolamu helu me kā mākou hana ma Hoʻohui i ke kolamu - Kāhea i ka hana maʻamau (Hoʻohui i ke kolamu — Kāhea i ka hana maʻamau) a e hoʻokomo i kāna mau hoʻopaʻapaʻa:

Nā Manaʻo Maʻamau (RegExp) ma Power Query

He hana paʻakikī loa ka hoʻopaʻa ʻana i nā leka uila a aia kekahi pūʻulu o nā ʻōlelo maʻamau o nā pae like ʻole o ka moeʻuhane e hoʻoponopono ai. Ua hoʻohana au i kekahi o nā koho maʻalahi - ʻaʻole kūpono, akā hana maikaʻi i ka nui o nā hihia:

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

Ma ke ʻano he mea hoʻokaʻawale (delim) hiki iā ʻoe ke komo i kahi semicolon a me kahi hakahaka.

E kaomi ma luna o OK a loaʻa iā mākou kahi kolamu me nā leka uila i unuhi ʻia mai ka kikokikona kumu "porridge":

Nā Manaʻo Maʻamau (RegExp) ma Power Query

Ke kilokilo!

PS

E like me ka ʻōlelo: "ʻAʻohe mea maikaʻi e hiki ʻole ke hoʻomaikaʻi ʻia." He ʻoluʻolu ʻo Power Query iā ia iho, a ke hui pū ʻia me nā hōʻike maʻamau, hāʻawi ia iā mākou i ka mana maoli ʻole a me ka maʻalahi i ka hana ʻana i nā ʻikepili kikokikona. Manaʻo wau e hoʻohui ʻo Microsoft i kekahi lā i ke kākoʻo RegExp i Power Query a me Power BI a me nā hula a pau me ka pahu pahu e lilo i mea o ka wā ma mua. ʻAe, i kēia manawa, ʻae.

Makemake au e hoʻohui he mea maʻalahi ke pāʻani me nā ʻōlelo maʻamau ma ka pūnaewele https://regexr.com/ - pololei i ka mea hoʻoponopono pūnaewele. Aia ma ka ʻāpana Nā Kūlana Kaiaulu Nui nā kau maʻamau i hoʻomākaukau ʻia no nā manawa āpau. Hoʻāʻo - aia nā mana āpau o nā ʻōlelo maʻamau i kāu lawelawe ma Power Query!

  • He aha nā ʻōlelo maʻamau (RegExp) a pehea e hoʻohana ai iā lākou ma Excel
  • Huli kikokikona ma ka Power Query
  • ʻO ka hōʻuluʻulu ʻana i nā papa mai nā faila like ʻole me ka Power Query

Waiho i ka Reply