Cov Lus Qhia tsis tu ncua (RegExp) hauv Cov Lus Nug Lub Zog

Yog tias koj tsawg kawg yog me ntsis paub txog cov kab lus tsis tu ncua, ces koj tsis tas yuav tshaj tawm lawv. Yog tias koj tsis nyob hauv cov ntsiab lus, ces cov lus hais tsis tu ncua (RegExp = "regexps" = "regulars") yog ib hom lus uas, siv cov cim tshwj xeeb thiab cov cai, qhov tsim nyog substrings tau tshawb rau hauv cov ntawv nyeem, lawv muab rho tawm. los yog hloov nrog lwm cov ntawv. Qhov no yog cov cuab yeej muaj zog thiab zoo nkauj heev, qhov kev txiav txim ntawm qhov loj dua rau txhua txoj hauv kev ua haujlwm nrog cov ntawv nyeem.

Kuv twb tau piav qhia meej thiab nrog ntau cov piv txwv ntawm lub neej yuav ua li cas koj tuaj yeem ntxiv kev txhawb nqa rau Excel siv cov macros yooj yim - yog tias koj tsis tau nyeem tsab xov xwm no, kuv xav kom koj nyeem nws ua ntej txuas ntxiv. Koj yuav pom ntau yam tshiab, kuv lav 🙂

Txawm li cas los xij, cov lus nug tseem qhib - yuav ua li cas ntxiv lub peev xwm los siv cov lus qhia tsis tu ncua hauv Power Query? Power Query, ntawm chav kawm, yog qhov zoo ntawm nws tus kheej thiab tuaj yeem ua ntau yam nrog cov ntawv nyeem (txiav, gluing, tu, thiab lwm yam), tab sis yog tias koj tuaj yeem hla nws nrog lub zog ntawm cov lus hais tsis tu ncua, nws tsuas yog foob pob.

Hmoov tsis zoo, tsis muaj cov haujlwm tsim ua haujlwm rau kev ua haujlwm nrog RegExps hauv Power Query, thiab kev pabcuam Microsoft thiab kev pabcuam kev pabcuam teb cov lus nug no hauv qhov tsis zoo. Txawm li cas los xij, muaj ib txoj hauv kev ntawm qhov kev txwv no 🙂

Lub essence ntawm txoj kev

Lub tswv yim tseem ceeb yog yooj yim rau kev txaj muag.

Nyob rau hauv daim ntawv teev cov built-in Power Query peev xwm, muaj ib tug muaj nuj nqi Web.Page. Cov lus piav qhia ntawm txoj haujlwm no ntawm lub vev xaib pabcuam Microsoft yog qhov tseeb:

Cov Lus Qhia tsis tu ncua (RegExp) hauv Cov Lus Nug Lub Zog

Txhais, qhov no yuav yog: "Rov qab cov ntsiab lus ntawm HTML cov ntaub ntawv tawg rau hauv nws cov qauv, nrog rau cov sawv cev ntawm cov ntaub ntawv tiav thiab nws lub cev tom qab cov cim npe tau raug tshem tawm." So-so piav qhia, frankly.

Feem ntau cov haujlwm no yog siv thaum importing cov ntaub ntawv los ntawm lub vev xaib thiab tau hloov pauv, piv txwv li, thaum peb xaiv ntawm tab Cov ntaub ntawv Hais kom Los ntawm Internet (Cov ntaub ntawv - Los ntawm lub vev xaib). Peb muab lub luag haujlwm rau nplooj ntawv web raws li kev sib cav, thiab nws rov qab nws cov ntsiab lus rau peb hauv daim ntawv ntawm cov ntxhuav, yav tas los tshem tag nrho cov cim npe.

Qhov kev pab tsis hais yog qhov ntxiv rau HTML markup lus muaj nuj nqi Web.Page txhawb JavaScript scripts, uas yog tam sim no ubiquitous ntawm cov websites hauv Internet. Thiab JavaScript, nyob rau hauv lem, yeej ib txwm muaj peev xwm ua hauj lwm nrog cov lus qhia tsis tu ncua thiab muaj built-in functions rau RegExps! Yog li txhawm rau ua raws li cov lus qhia tsis tu ncua hauv Power Query, peb yuav tsum tau pub rau Web.Page ua haujlwm raws li kev sib cav rau qhov kev pabcuam JavaScript me me uas yuav ua txhua yam haujlwm rau Power Query.

Nws zoo li hauv JavaScript ntshiab

Muaj ntau cov ncauj lus kom ntxaws txog kev ua haujlwm nrog cov lus qhia tsis tu ncua hauv JavaScript hauv Is Taws Nem (piv txwv li, ib, ob).

Hauv luv luv thiab yooj yim, JavaScript code yuav zoo li no:

Cov Lus Qhia tsis tu ncua (RegExp) hauv Cov Lus Nug Lub Zog

Ntawm no:

  • var str = 'Them nqi 123 thiab 789 rau hnyuv ntxwm'; - tsim qhov sib txawv str thiab muab nws cov ntawv nyeem uas peb yuav txheeb xyuas.
  • var qauv = /d+/gi; - Tsim ib qho kev qhia tsis tu ncua thiab muab tso rau hauv qhov sib txawv qauv.

    Cov lus qhia pib nrog tus lej (/).

    Qhov kev qhia nws tus kheej ntawm no, piv txwv li, yog d+ sawv cev rau ib ntu ntawm tus lej.

    Los ntawm cov feem tom qab qhov kev qhia, muaj cov kev tshawb fawb ntxiv (modifiers) - lawv tuaj yeem teev nyob rau hauv ib qho kev txiav txim:

    • g - txhais tau tias kev tshawb nrhiav thoob ntiaj teb, piv txwv li tom qab nrhiav kev sib tw, koj yuav tsum tsis txhob nres, tab sis txuas ntxiv kev tshawb fawb kom txog thaum kawg ntawm cov ntawv nyeem. Yog tias qhov hloov kho no tsis tau teeb tsa, ces peb tsab ntawv tsuas yog rov qab thawj qhov sib tw (123)
    • i - tshawb nrhiav yam tsis hais txog cov ntawv
    • m - Kev tshawb nrhiav ntau kab (siv thaum cov ntawv nyeem tau muab faib ua ob peb kab)
  • var result = str.match(pattern).join(';'); - ua ib qho kev tshawb fawb hauv cov ntawv nyeem (str) los ntawm cov lus qhia tsis tu ncua (qauv) thiab muab cov txiaj ntsig rau hauv qhov sib txawv tshwm sim, concatenating lawv nrog ib tug semicolon siv cov lus txib koom
  • document.write(tseem); - tso saib cov ntsiab lus ntawm cov txiaj ntsig sib txawv

Tsis tas li ntawd nco ntsoov tias cov kab ntawv (tsis suav nrog cov kab lus tsis tu ncua) hauv JavaScript yog nyob rau hauv apostrophes, tsis yog quotes raws li lawv nyob hauv Power Query lossis VBA.

Ntawm qhov tso zis, tsab ntawv no yuav muab rau peb raws li qhov tshwm sim txhua tus lej pom hauv cov ntawv nyeem:

123, 789

JavaScript kawm luv luv dhau lawm, ua tsaug rau txhua tus. Vam tias koj tau txais cov logic 🙂

Nws tseem yuav hloov qhov kev tsim kho no mus rau Power Query.

Tshawb nrhiav thiab rho cov ntawv ua haujlwm los ntawm kev nthuav tawm tsis tu ncua hauv Cov Lus Nug Lub Hwj Chim

Peb ua cov hauv qab no:

1. Qhib Excel thiab tsim ib lub zog Query tshiab hauv tab Cov ntaub ntawv - Tau txais cov ntaub ntawv / Tsim kev thov - Los ntawm lwm qhov chaw - thov tsis pub (Cov ntaub ntawv - Tau txais cov ntaub ntawv / Cov lus nug tshiab - Los ntawm lwm qhov chaw - Cov lus nug tsis muaj). Yog hais tias koj muaj ib tug laus version ntawm Excel 2010-2013 thiab Power Query koj tsis muaj built-in, tab sis raug ntsia raws li ib tug cais add-in, ces tag nrho cov no yuav nyob rau hauv tab. Lub Zog Lus NugThiab tsis Cov ntaub ntawv.

2. Nyob rau hauv lub qhov rais khoob ntawm cov lus nug editor uas qhib, nyob rau hauv txoj cai vaj huam sib luag, tam sim ntawd sau lub npe ntawm peb yav tom ntej ua hauj lwm (piv txwv li, fxRegExtract)

Cov Lus Qhia tsis tu ncua (RegExp) hauv Cov Lus Nug Lub Zog

3. Wb mus rau tab Saib - Advanced Editor (Saib - Advanced Editor), peb tshem tag nrho M-code ntawm qhov kev thov khoob thiab muab cov lej ntawm peb qhov kev ua haujlwm zoo nyob rau ntawd:

Cov Lus Qhia tsis tu ncua (RegExp) hauv Cov Lus Nug Lub Zog

Saib koj txhais tes:

Hauv thawj kab, peb hais tias peb txoj haujlwm yuav muaj peb nqe lus sib cav: txt - thawj cov ntawv nyeem raug txheeb xyuas, rov rex - qauv qhia tsis tu ncua, delim - tus cim delimiter rau kev nthuav tawm cov txiaj ntsig.

Tom ntej no peb hu ua lub luag haujlwm Web.Page, tsim cov JavaScript code tau piav saum toj no hauv nws qhov kev sib cav. Peb muab tshuaj txhuam thiab hloov peb cov lus sib txawv sib txawv rau hauv cov cai.

Fragment:

[Data]{0}[Children]{0}[Children]{1}[Text]{0}

… yog xav tau kom “dhau mus” rau hauv lub rooj nrog cov txiaj ntsig peb xav tau. Lub ntsiab lus yog qhov ua haujlwm Web.Page Raws li qhov tshwm sim, nws tsim ob peb lub rooj nested uas rov ua cov qauv ntawm nplooj ntawv web. Yog tsis muaj daim M-code no, peb txoj haujlwm yuav tso tawm qhov no:

Cov Lus Qhia tsis tu ncua (RegExp) hauv Cov Lus Nug Lub Zog

… thiab peb yuav tau nyem lo lus ob peb zaug rooj, successively "poob los ntawm" rau hauv me nyuam nested rooj nyob rau hauv txhua Cov me nyuam:

Cov Lus Qhia tsis tu ncua (RegExp) hauv Cov Lus Nug Lub Zog

Hloov chaw ntawm tag nrho cov lus hais no, peb tam sim ntawd qhia hauv cov cai ntawm peb txoj haujlwm uas nested rooj thiab kab (Phau ntawv) peb xav tau.

Ntawm no, qhov tseeb, yog tag nrho cov secrets. Nws tseem yuav nias lub khawm Tag hauv qhov rais advanced editor, qhov twg peb tso peb cov cai, thiab koj tuaj yeem mus rau qhov qab tshaj plaws - sim peb txoj haujlwm ntawm kev ua haujlwm.

Nov yog ob peb yam piv txwv ntawm noob.

Piv txwv 1. Muab tus lej account thiab hnub tim los ntawm cov lus piav qhia txog kev them nyiaj

Peb muaj daim ntawv qhia nyiaj hauv tuam txhab nrog cov lus piav qhia (lub hom phiaj) ntawm kev them nyiaj, qhov twg koj yuav tsum rub tawm cov lej thiab hnub tim ntawm cov ntawv them nyiaj them rau hauv cov kab sib cais:

Cov Lus Qhia tsis tu ncua (RegExp) hauv Cov Lus Nug Lub Zog

Peb thauj lub rooj rau hauv Power Query hauv tus txheej txheem los ntawm Cov ntaub ntawv - Los ntawm Rooj / Ntau (Cov ntaub ntawv - Los ntawm Ttau / Rtus tim tswv).

Tom qab ntawd peb ntxiv ib kem suav nrog peb txoj haujlwm ntawm Ntxiv Kem - Hu rau Kev Cai Ua Haujlwm (Ntxiv Kem - Invoke Custom Function) thiab sau nws cov lus sib cav:

Cov Lus Qhia tsis tu ncua (RegExp) hauv Cov Lus Nug Lub Zog

Raws li ib txwm qhia (kev sib cav rov rex) template peb siv:

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

… txhais ua tib neeg lub ntsiab lus: 

tus lej los ntawm 3 mus rau 5 tus lej (tus lej lej)

or

fragments ntawm daim ntawv "2-ntsis tus lej - taw tes - 2-ntsis tus lej - taw tes - 4-ntsis tus lej", uas yog, hnub ntawm daim ntawv DD.MM.YYYY.

Raws li tus cim delimiter (kev sib cav delim) nkag mus rau semicolon.

Tom qab txhaj rau OK peb cov haujlwm ua khawv koob tshuaj xyuas tag nrho cov ntaub ntawv thawj zaug raws li peb cov lus qhia tsis tu ncua thiab tsim ib kab rau peb nrog cov lej pom thiab hnub tim ntawm cov ntawv xa nyiaj:

Cov Lus Qhia tsis tu ncua (RegExp) hauv Cov Lus Nug Lub Zog

Nws tseem yuav cais nws los ntawm semicolon siv cov lus txib Tsev — Split Kem — Los ntawm Delimiter (Tsev — Sib faib kem — Los ntawm delimiter) thiab peb tau txais yam peb xav tau:

Cov Lus Qhia tsis tu ncua (RegExp) hauv Cov Lus Nug Lub Zog

Kev zoo nkauj!

Piv txwv 2: Extract email chaw nyob los ntawm cov ntawv nyeem

Piv txwv tias peb muaj cov lus hauv qab no ua cov ntaub ntawv pib:

Cov Lus Qhia tsis tu ncua (RegExp) hauv Cov Lus Nug Lub Zog

... los ntawm qhov uas peb yuav tsum rub tawm cov email chaw nyob pom muaj (kom meej meej, kuv tau qhia rau lawv hauv cov ntawv liab).

Raws li nyob rau hauv cov piv txwv yav dhau los, peb thauj lub rooj rau hauv Power Query nyob rau hauv tus txheej txheem txoj kev ntawm Cov ntaub ntawv - Los ntawm Rooj / Ntau (Cov ntaub ntawv - Los ntawm Ttau / Rtus tim tswv).

Tom qab ntawd peb ntxiv ib kem suav nrog peb txoj haujlwm ntawm Ntxiv Kem - Hu rau Kev Cai Ua Haujlwm (Ntxiv Kem - Invoke Custom Function) thiab sau nws cov lus sib cav:

Cov Lus Qhia tsis tu ncua (RegExp) hauv Cov Lus Nug Lub Zog

Kev txheeb xyuas email chaw nyob yog ib txoj haujlwm nyuaj dua thiab muaj ntau cov lus qhia tsis tu ncua ntawm ntau qib kev npau suav phem los daws nws. Kuv siv ib qho ntawm cov kev xaiv yooj yim - tsis yog qhov zoo tagnrho, tab sis ua haujlwm tau zoo nyob rau hauv feem ntau:

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

Raws li tus separator (delim) koj tuaj yeem nkag mus rau ib qho semicolon thiab qhov chaw.

Nias rau OK thiab peb tau txais ib kab nrog e-mail chaw nyob muab rho tawm los ntawm cov ntawv qub "porridge":

Cov Lus Qhia tsis tu ncua (RegExp) hauv Cov Lus Nug Lub Zog

Khawv koob!

PS

Raws li cov lus hais tias: "Tsis muaj ib yam zoo uas yuav ua tsis tau zoo dua." Power Query yog txias ntawm nws tus kheej, thiab thaum ua ke nrog cov kab lus tsis tu ncua, nws muab peb lub zog tsis muaj tseeb thiab yoog raws hauv kev ua cov ntaub ntawv ntawv. Kuv vam tias Microsoft yuav muaj ib hnub ntxiv RegExp kev txhawb nqa hauv Power Query thiab Power BI hloov tshiab thiab tag nrho cov kev seev cev saum toj no nrog lub tambourine yuav dhau los ua ib qho dhau los. Zoo, rau tam sim no, yog.

Kuv kuj xav ntxiv tias nws yooj yim rau kev ua si nrog cov lus qhia tsis tu ncua ntawm lub xaib https://regexr.com/ - txoj cai hauv online editor. Muaj nyob rau hauv seem Cov qauv hauv zej zog Muaj ntau lub caij npaj ua ib txwm ua rau txhua lub sijhawm. Kev sim - txhua lub zog ntawm cov lus hais tsis tu ncua tam sim no ntawm koj qhov kev pabcuam hauv Power Query!

  • Dab tsi yog cov lus qhia tsis tu ncua (RegExp) thiab siv lawv li cas hauv Excel
  • Fuzzy text search hauv Power Query
  • Sib sau cov rooj los ntawm cov ntaub ntawv sib txawv siv Power Query

Sau ntawv cia Ncua