Community
    • Login

    RegEx Help with Backreference I think

    Scheduled Pinned Locked Moved Help wanted · · · – – – · · ·
    58 Posts 4 Posters 1.7k Views
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • guy038G
      guy038
      last edited by

      Hi, @robert-or-janet-diebel,

      Very odd that you got some errors ! Let me re-explain the process :

      Starting with this INPUT text, AFTER an Edit > Line Operations > Reverse Line order operation :

      \v 15	Omu vakumishile kulyaula, Yesu ahuli
      \v 14	Aka kakiko jino kamuchitatu Yesu ali
      \v 13	Yesu ejile, anonele yize mbolo nakuv
      \v 12	Yesu avambile ngwenyi, Twayenu mulya
      \v 11	Shikaho Shimona Petulu engilile muwa
      \v 10	Yesu avambile ngwenyi, Nehenuko vais
      \v 9	Kaha omu vakandukile hatunda, vamwen
      \v 8	Vaze vakwavo tumbaji vejile muwato o
      \v 7	Kaha uze kambaji vazangile kuli Yesu
      \v 6	Avambile ngwenyi, Fuchilenu kusali y
      \v 5	Kaha Yesu avahulishile ngwenyi, Enu 
      \v 4	Jino muze zwalala, Yesu emanyine kun
      \v 3	Shimona Petulu avambile ngwenyi, Nan
      \v 2	omu vapwile hamwe, Shimona Petulu na
      \v 1	Kufuma haze, Yesu alisolwele cheka k
      Chapter 21
      \v 15	Yesu amuhulishile ngwenyi, Ove pwevo
      \v 14	Omu áhanjikile ngocho, alumukile kah
      \v 13	Kaha vakiko vamuhulishile ngwavo, Ov
      \v 12	Kaha amwene vangelo vavali vanavwale
      \v 11	Oloze Maliya emanyine haweluka wachi
      \v 10	Kaha vaze tumbaji vahilukile kuze va
      \v 9	Mwomwo haze, Mazu-vasoneka-ajila kan
      \v 8	Haze vene nauze kambaji mukwavo áliv
      \v 7	nalilesu lize lyapwile kumutwe wenyi
      \v 6	Kaha Shimona Petulu amukavile nakuhe
      \v 5	Kaha hakunongama nakutalamo, amwene 
      \v 4	Vosena vavali vapwile nakulahila ham
      \v 3	Kaha Petulu alovokele nauze kambaji 
      \v 2	Shikaho alahile nakuya kuli vaShimon
      \v 1	Jino halikumbi lyatete muchalumingo,
      Chapter 20
      ...
      ...
      ...
      \v 15	mangana wose mwamufwelela, apwenga n
      \v 14	Kaha ngana muze azezwile Mose uze li
      \v 13	Naumwe aya lyehi mwilu wauchi, shina
      \v 12	Omu ngunamilweze vyahamavu, kamwafwe
      \v 11	Mwamuchano vene nangukulweza ngwami,
      \v 10	Yesu amukumbulwile ngwenyi, Ove umuk
      \v 9	Nyikotemu amuhulishile ngwenyi, Vyum
      \v 8	Peho yeji kuhuhwanga kweshokwo nayis
      \v 7	Kanda ulikomokela omu ngwakwambanga 
      \v 6	Ocho chakusemuwa kumujimba wanyama c
      \v 5	Yesu amukumbulwile ngwenyi, Mwamucha
      \v 4	Nyikotemu amuhulishile ngwenyi, Mutu
      \v 3	Yesu amukumbulwile ngwenyi, Mwamucha
      \v 2	Ikiye ejile kuli Yesu naufuku nakwam
      \v 1	Jino kwapwile mutu wamuli vaFwaliseu
      Chapter 3
      \v 15	Kaha anyotele chikote chajingoji nak
      \v 14	Kaha muTembele, awanyine vaze vapwil
      \v 13	Chiwanyino chaKuzomboka chavaYuleya 
      \v 12	Kufuma haze, ashikumukile kuKapelena
      \v 11	Echi alingile Yesu kuKana, limbo lya
      \v 10	nakumwamba ngwenyi, Vatu vosena veji
      \v 9	Aze meya álumukile kupwa vinyo, omu 
      \v 8	Avambile ngwenyi, Switenumo jino mum
      \v 7	Yesu avambile ngwenyi, Zalisenu milo
      \v 6	Jino kuze kwapwile milondo yamalolwa
      \v 5	Naye alwezele vangamba ngwenyi, Ches
      \v 4	Kaha Yesu amwambile ngwenyi, Ove mam
      \v 3	Omu vinyo yahwile, naye alwezele Yes
      \v 2	Yesu nawa vamusanyikile natumbaji tw
      \v 1	Halikumbi lyamuchitatu kwapwile chil
      Chapter 2
      Chapter 1:14	Jino Lizu alilingishile Ivene ku
      Chapter 1:13	vaze vene vásemuwile, keshi kuma
      Chapter 1:12	Oloze veshovo vamutambwile, vaze
      Chapter 1:11	Ejile kuvyenyi, kaha vaze venyi 
      Chapter 1:10	Apwile hakaye, kaha kaye vakaten
      Chapter 1:9	Musana wamuchano apwile nakwiza 
      Chapter 1:8	Ikiye kapwile Uze Musanako, oloz
      Chapter 1:7	Ikiye ejile apwenga chinjiho wak
      Chapter 1:6	Kwapwile mutu vatumine kufuma ku
      Chapter 1:5	Musana kana wamunyika mumilima, 
      Chapter 1:4	Muli Ikiye mwapwile Mwono, kaha 
      Chapter 1:3	Vyosena vavitengelele muli Ikiye
      Chapter 1:2	Ikiye apwilenga naKalunga kukupu
      Chapter 1:1	Kukuputuka Lizu apwilengako, kah
      Chapter 1
      
      • Paste the text, right above, in a new N++ tab

      • Place the caret / cursor at the beginning of the very first line \v 15 Omu vakumishile kulyaula, Yesu ahuli, so right before the anti-slash

      • Open the Replace dialog

      • Uncheck all the box options

      • FIND (?s-i)\\v (?=.+?^(\u[\u\l -]+ \d+$))

      • REPLACE $1:

      • Select the Regular expression search mode

      • Click several times on the Replace button OR just once on the Replace All button

      ==> You should see the message 60 occurrences were replaced from caret to end of file

      And you should get the expected OUTPUT text, below :

      Chapter 21:15	Omu vakumishile kulyaula, Yesu ahuli
      Chapter 21:14	Aka kakiko jino kamuchitatu Yesu ali
      Chapter 21:13	Yesu ejile, anonele yize mbolo nakuv
      Chapter 21:12	Yesu avambile ngwenyi, Twayenu mulya
      Chapter 21:11	Shikaho Shimona Petulu engilile muwa
      Chapter 21:10	Yesu avambile ngwenyi, Nehenuko vais
      Chapter 21:9	Kaha omu vakandukile hatunda, vamwen
      Chapter 21:8	Vaze vakwavo tumbaji vejile muwato o
      Chapter 21:7	Kaha uze kambaji vazangile kuli Yesu
      Chapter 21:6	Avambile ngwenyi, Fuchilenu kusali y
      Chapter 21:5	Kaha Yesu avahulishile ngwenyi, Enu 
      Chapter 21:4	Jino muze zwalala, Yesu emanyine kun
      Chapter 21:3	Shimona Petulu avambile ngwenyi, Nan
      Chapter 21:2	omu vapwile hamwe, Shimona Petulu na
      Chapter 21:1	Kufuma haze, Yesu alisolwele cheka k
      Chapter 21
      Chapter 20:15	Yesu amuhulishile ngwenyi, Ove pwevo
      Chapter 20:14	Omu áhanjikile ngocho, alumukile kah
      Chapter 20:13	Kaha vakiko vamuhulishile ngwavo, Ov
      Chapter 20:12	Kaha amwene vangelo vavali vanavwale
      Chapter 20:11	Oloze Maliya emanyine haweluka wachi
      Chapter 20:10	Kaha vaze tumbaji vahilukile kuze va
      Chapter 20:9	Mwomwo haze, Mazu-vasoneka-ajila kan
      Chapter 20:8	Haze vene nauze kambaji mukwavo áliv
      Chapter 20:7	nalilesu lize lyapwile kumutwe wenyi
      Chapter 20:6	Kaha Shimona Petulu amukavile nakuhe
      Chapter 20:5	Kaha hakunongama nakutalamo, amwene 
      Chapter 20:4	Vosena vavali vapwile nakulahila ham
      Chapter 20:3	Kaha Petulu alovokele nauze kambaji 
      Chapter 20:2	Shikaho alahile nakuya kuli vaShimon
      Chapter 20:1	Jino halikumbi lyatete muchalumingo,
      Chapter 20
      ...
      ...
      ...
      Chapter 3:15	mangana wose mwamufwelela, apwenga n
      Chapter 3:14	Kaha ngana muze azezwile Mose uze li
      Chapter 3:13	Naumwe aya lyehi mwilu wauchi, shina
      Chapter 3:12	Omu ngunamilweze vyahamavu, kamwafwe
      Chapter 3:11	Mwamuchano vene nangukulweza ngwami,
      Chapter 3:10	Yesu amukumbulwile ngwenyi, Ove umuk
      Chapter 3:9	Nyikotemu amuhulishile ngwenyi, Vyum
      Chapter 3:8	Peho yeji kuhuhwanga kweshokwo nayis
      Chapter 3:7	Kanda ulikomokela omu ngwakwambanga 
      Chapter 3:6	Ocho chakusemuwa kumujimba wanyama c
      Chapter 3:5	Yesu amukumbulwile ngwenyi, Mwamucha
      Chapter 3:4	Nyikotemu amuhulishile ngwenyi, Mutu
      Chapter 3:3	Yesu amukumbulwile ngwenyi, Mwamucha
      Chapter 3:2	Ikiye ejile kuli Yesu naufuku nakwam
      Chapter 3:1	Jino kwapwile mutu wamuli vaFwaliseu
      Chapter 3
      Chapter 2:15	Kaha anyotele chikote chajingoji nak
      Chapter 2:14	Kaha muTembele, awanyine vaze vapwil
      Chapter 2:13	Chiwanyino chaKuzomboka chavaYuleya 
      Chapter 2:12	Kufuma haze, ashikumukile kuKapelena
      Chapter 2:11	Echi alingile Yesu kuKana, limbo lya
      Chapter 2:10	nakumwamba ngwenyi, Vatu vosena veji
      Chapter 2:9	Aze meya álumukile kupwa vinyo, omu 
      Chapter 2:8	Avambile ngwenyi, Switenumo jino mum
      Chapter 2:7	Yesu avambile ngwenyi, Zalisenu milo
      Chapter 2:6	Jino kuze kwapwile milondo yamalolwa
      Chapter 2:5	Naye alwezele vangamba ngwenyi, Ches
      Chapter 2:4	Kaha Yesu amwambile ngwenyi, Ove mam
      Chapter 2:3	Omu vinyo yahwile, naye alwezele Yes
      Chapter 2:2	Yesu nawa vamusanyikile natumbaji tw
      Chapter 2:1	Halikumbi lyamuchitatu kwapwile chil
      Chapter 2
      Chapter 1:14	Jino Lizu alilingishile Ivene ku
      Chapter 1:13	vaze vene vásemuwile, keshi kuma
      Chapter 1:12	Oloze veshovo vamutambwile, vaze
      Chapter 1:11	Ejile kuvyenyi, kaha vaze venyi 
      Chapter 1:10	Apwile hakaye, kaha kaye vakaten
      Chapter 1:9	Musana wamuchano apwile nakwiza 
      Chapter 1:8	Ikiye kapwile Uze Musanako, oloz
      Chapter 1:7	Ikiye ejile apwenga chinjiho wak
      Chapter 1:6	Kwapwile mutu vatumine kufuma ku
      Chapter 1:5	Musana kana wamunyika mumilima, 
      Chapter 1:4	Muli Ikiye mwapwile Mwono, kaha 
      Chapter 1:3	Vyosena vavitengelele muli Ikiye
      Chapter 1:2	Ikiye apwilenga naKalunga kukupu
      Chapter 1:1	Kukuputuka Lizu apwilengako, kah
      Chapter 1
      

      Finally, after a second operation Edit > Line Operations > Reverse Line order you’ll find the natural order of your text !

      Best Regards,

      guy038

      Robert Or Janet DiebelR 2 Replies Last reply Reply Quote 0
      • Alan KilbornA
        Alan Kilborn @Robert Or Janet Diebel
        last edited by Alan Kilborn

        @Robert-Or-Janet-Diebel said:

        I am getting invalid RegEX with this new one.

        This could be data-related.

        A regex can be tested for validity by searching using it in an empty Notepad++ tab. If the find status bar says “0 matches” then the regex is valid. If it says “invalid regex”, then, well…

        Side note: PythonScript writers can test for a valid regex without data by using the regex_is_valid function from HERE.

        1 Reply Last reply Reply Quote 1
        • Robert Or Janet DiebelR
          Robert Or Janet Diebel @guy038
          last edited by

          @guy038 Thanx much. I do not know what happened yesterday.However I have made great progress today with the help you provided. The following MACRO works great for these first two steps:

                  <Macro name="\c2Book\v2Verse" Ctrl="no" Alt="no" Shift="no" Key="0">
                      <Action type="2" message="0" wParam="42083" lParam="0" sParam="" />
                      <Action type="3" message="1700" wParam="0" lParam="0" sParam="" />
                      <Action type="3" message="1601" wParam="0" lParam="0" sParam="(?-s)^\\c (\d+)(?=(.*\R)+?\\toc2 (.+)$)" />
                      <Action type="3" message="1625" wParam="0" lParam="2" sParam="" />
                      <Action type="3" message="1602" wParam="0" lParam="0" sParam="${3} ${1}" />
                      <Action type="3" message="1702" wParam="0" lParam="512" sParam="" />
                      <Action type="3" message="1701" wParam="0" lParam="1609" sParam="" />
                      <Action type="3" message="1700" wParam="0" lParam="0" sParam="" />
                      <Action type="3" message="1601" wParam="0" lParam="0" sParam="(?-is)\\v (?=(?s:.+?^(\u[\u\l -]+ \d+$)))" />
                      <Action type="3" message="1625" wParam="0" lParam="2" sParam="" />
                      <Action type="3" message="1602" wParam="0" lParam="0" sParam="${1}:" />
                      <Action type="3" message="1702" wParam="0" lParam="512" sParam="" />
                      <Action type="3" message="1701" wParam="0" lParam="1609" sParam="" />
                      <Action type="2" message="0" wParam="42083" lParam="0" sParam="" />
                  </Macro>
          
          
          1 Reply Last reply Reply Quote 0
          • Robert Or Janet DiebelR
            Robert Or Janet Diebel @guy038
            last edited by

            @guy038 said in RegEx Help with Backreference I think:

            If you’re still unsure about certain details, just ask me !

            I can select and remove the preamble from:

            \id NUM kulav.txt 1993 A.Horton.Luvale
            \h KULAVA
            \toc1 Mukanda waKulava
            \toc2 Kulava
            \toc3 Kulat2 MUKANDA WAt1 KULAVAt2 MUKANDA WAMUCHITANU ÁSONEKELE MOSE
            \imt Kujimbula mukanda
            \is Ásonekele mukanda
            \ip Ou Mukanda waKulava vauvulukila Mose ngwavo ikiye ausonekele. Ou Mose ikiye uze vavuluka kuMukanda waKulovoka (Tala Kulo 2:1-10). Apwile mwanaAmilame mwanaKohate mwanaLevi (Tala ku1 Mijimbu 6:3), mwanaYakova (Tala Kuputuka 25:22-26) uze valukile ngwavo Isalele kuli Kalunga (Kuputuka 22:38). Isalele apwile mwanaIsaka mwanaApalahama, uze apwile mwanaTela.
            \ip Mose vamuvulukila kusoneka mikanda yosena yitanu — Kuputuka naKulovoka naVyavaLevi naKulava nou waKuhituluka muJishimbi. Unjiho wauvulu wamuChilongeselo-chalushiko-lwaKalunga-Chamwaka wamuvuluka ikiye kupwa muka-kusoneka (Kulovoka 17:14; 34:27; Kuhituluka 31:9). Kaha muChilongeselo-chalushiko-lwaKalunga-Chachihya, vamuvulukamo kakavulu, kuhakilako nomu Ivene Kulishitu amuvulukila kupwa muka-kusoneka (Mateu 8:4). Apwile nauhashi wakusoneka, kaha apwile nalwola lwakusoneka, kaha nawa atachikijile shindakanyi yavyosena vize vyasolokelenga.
            \is Mwaka wakuusoneka
            \ip Mukanda uno vausonekele mukachi kamwaka wa1450 na1400 shimbu kanda kusemuka chaMwata Yesu Kulishitu.
            \is Vihande vili mumukanda
            \ip Lijina lyamukanda uno lyafuma hakupwa ukiko mukanda vasonekelemo kulava chavaIsalele. Mukanda waKulava waswika kuvihande vize vyatwama mumukanda waKulovoka. Kaha wapwa mukanda mwatwama chihande chakukimba chavana vaIsalele mumakango, kutesa nakuzeneka chavo kwononoka Kalunga kavo Uze avasokwele muundungo, numba vahone kwingilila kuKatesha-Mbalaneya mulifuchi lize lyalushiko.
            \ip Wapwa mukanda walumbununa milimo nakutambuka chavana vaIsalele, kaha tunahase kuufwanyisa nachiyoyelo chamuka-Kulishitu. Kaha wapwa mukanda wavihande vyamwakutambukila mwakalemesa kumeso aKalunga, kaha wakukulula vihande vili mumikanda yikwavo, ngana —
            \ili KUPUTUKA — wapwa mukanda wavuluka tengeso yaKalunga, kuvulumuna chamutu, nahaputukila tanga yavaIsalele.
            \ili KULOVOKA — wavuluka kusokoka chavana vaIsalele
            \ili WAVYAVALEVI — wavuluka kulifukula kuli Kalunga nakulikata nenyi
            \ili KULAVA — wavuluka vyosena vize vyapandama kumilimo yavo nakutambuka chavo.
            \ip Chachilemu etu kutachikiza ngwetu, kakweshi mutu vechelele alilingile mwaya kusaka chenyiko. Ngamba hingamba yaKalunga muli vana vaIsalele apwile wakulava, kaha atachikijile chihela chenyi muze mutanga yenyi, namulimo wenyi uze vamuhanyine kuzatanga. Mukanda waKulava tunahase kuufwanyisa navize vasoneka kuMukanda wavaka-Kolinde wakavanga mukapetulu likumi nakavali (1 Kolinde 12) haze vavuluka chilyo hichilyo chamujimba chapwa chachilemu, kaha nawa chatwama namulimo wacho.
            \ip Chikwavo nawa — chize kweseka chosena vesekele vaIsalele muze mumakango, kavachihashileko, vachihonene hakuzeneka kufwelela Kalunga. Ngocho etu kuvanga tuzame mulufwelelo.
            \is Vihanda vitanu vili mumukanda
            \ili1 vaIsalele nomu vatambukililenga mumazavu avo, 1:1—10:10
            \ili1 Kufuma kupili yaShinai nakuheta kuKateshe-mbalaneya, 10:11—12:16
            \ili1 VaIsalele hakupwa kuKateshe-mbalaneya, 13:1—19:22
            \ili1 Kutambwojoka chavaIsalele mumakango, 20:1—33:49
            \ili1 Kuvalweza chakukumishilako, 33:50—36:13.
            Kulava 1
            Kulava 1:1 Halikumbi lyakavanga mukakweji wamuchivali, mumwaka wamuchivali kufuma haze valovokele mulifuchi lyaEjipitu, Yehova alwezele Mose mumakango aShinai muMbalaka yakuliwanyina ngwenyi,
            Kulava 1:2 Lavenu lizavu lyavana vaIsalele lyosena mwaya jitanga javo muvisaka vyavakakuluka javo mukuvula chamajina avo, malunga vosena umwe naumwe,
            Kulava 1:3 kufuma kuli ava vamyaka makumi avali (20) nakusambula, vosena vaze vakuhasa kulwa jita muli vaIsalele. Ove naAlone muvalave halizavu halizavu.
            Kulava 1:4 Kaha kutanga hitanga kufume lunga apwenga nayenu, kaha mutu himutu apwenga mwata wakutanga yavakakuluka jenyi.
            Kulava 1:5 Awa akiko majina amalunga navamikafwa — mutanga yaLuvene mufume Elizule mwanaSheteule.
            Kulava 1:6 Mutanga yaShimeyone mufume Shelumiyele mwanaZulishatai.
            Kulava 1:7 Mutanga yaYuta mufume Nashone mwanaAminatave.
            Kulava 1:8 Mutanga yaIsakale mufume Netanele mwanaZuwale.
            Kulava 1:9 Mutanga yaZevulune mufume Eliyave mwanaHelone.
            Kulava 1:10 Vamuli vana vaYosefwe navapwa ava — mutanga yaEfwalime mufume Elishama mwanaAmihute, mutanga yaManase mufume Ngamalyele mwanaPetazule.
            
            

            With:

            "\\id.*\\toc2 (.*?)\r\n.*?Kulava 1\r\n" - REPLACE - "Kulava 1\r\n" 
            

            However, how to fit in the lookahead to get the BookName without entering it manually still escapes me. I am working on it, but if you have any guidance, that would be great, and much appreciated.

            1 Reply Last reply Reply Quote 0
            • guy038G
              guy038
              last edited by guy038

              Hello, @robert-or-janet-diebel,

              Ah…, I think I’ve got the solution !

              When I first see your last regex \\id.*\\toc2 (.*?)\r\n.*?Kulava 1\r\n", I understood that you wanted to store the name which comes next to the \toc2 string till the nearest SAME name ( Kulava ) further on, followed with some digits and ending the current line, isn’t it ?

              So, after some tests, the solution is this regex S/R :

              FIND (?s-i)\\id.+?\\toc2 (.+?)\R.*?(?=^\1 \d+$)

              REPLACE Leave EMPTY


              First, as in my previous post, I use the initial (?s-i) modifiers. So the search, either :

              • is sensitive to case in order that the boundaries of the searched gap are strictly identical ( so Kulava )

              • Considers any . regex char as matching any character, even a line-break char


              This rule implies that we’ll use the ? lazy quantifier in order to get :

              • The nearest \toc2 string after the \id string ( \\id.+?\\toc2 )

              • The nearest LINE-BREAK after the stored name ( (.+?)\R )

              • The nearest range of characters ( .*? ) before the look-ahead ( (?=^\1 \d+$) )


              The stored bookName is the regex expression (.+?) after \toc2 and right before \R which represents any line-break ( \r in MAC files, \n in Unix/Linux files or \r\n in Windows files )

              The stored value ( Kulava ) is re-used as \1, with the same case, inside the look-ahead structure ( (?=......) ) , followed with a space char and some digits ( \d+ ) ending the current line ( $ )

              To refer to this group 1, you could have used, in the SEARCH regex, instead of \1, one of the syntaxes below :

              • (?=^\g1 \d+$) or (?=^\g{1} \d+$) or (?=^\g<1> \d+$) or (?=^\g'1' \d+$)

              • (?=^\k1 \d+$) or (?=^\k{1} \d+$) or (?=^\k<1> \d+$) or (?=^\k'1' \d+$)

              For identical results !

              Again, as you see, we may refer to the group ( after the \toc2 string ) later, in the look-ahead part, just because it’s found AFTER the current regex engine position !


              Practically, this regex S/R :

              • Selects all the characters between the first line \id NUM kulav.txt 1993 A.Horton.Luvale and the next string EXCLUDED, which was stored after the \toc2 string ( Kulava )

              • Deletes all this range of characters as the Replacement zone is EMPTY

              Thus, given the INPUT text :

              \id NUM kulav.txt 1993 A.Horton.Luvale
              \h KULAVA
              \toc1 Mukanda waKulava
              \toc2 Kulava
              \toc3 Kulat2 MUKANDA WAt1 KULAVAt2 MUKANDA WAMUCHITANU ÁSONEKELE MOSE
              \imt Kujimbula mukanda
              \is Ásonekele mukanda
              \ip Ou Mukanda waKulava vauvulukila Mose ngwavo ikiye ausonekele. Ou Mose ikiye uze vavuluka kuMukanda waKulovoka (Tala Kulo 2:1-10). Apwile mwanaAmilame mwanaKohate mwanaLevi (Tala ku1 Mijimbu 6:3), mwanaYakova (Tala Kuputuka 25:22-26) uze valukile ngwavo Isalele kuli Kalunga (Kuputuka 22:38). Isalele apwile mwanaIsaka mwanaApalahama, uze apwile mwanaTela.
              \ip Mose vamuvulukila kusoneka mikanda yosena yitanu — Kuputuka naKulovoka naVyavaLevi naKulava nou waKuhituluka muJishimbi. Unjiho wauvulu wamuChilongeselo-chalushiko-lwaKalunga-Chamwaka wamuvuluka ikiye kupwa muka-kusoneka (Kulovoka 17:14; 34:27; Kuhituluka 31:9). Kaha muChilongeselo-chalushiko-lwaKalunga-Chachihya, vamuvulukamo kakavulu, kuhakilako nomu Ivene Kulishitu amuvulukila kupwa muka-kusoneka (Mateu 8:4). Apwile nauhashi wakusoneka, kaha apwile nalwola lwakusoneka, kaha nawa atachikijile shindakanyi yavyosena vize vyasolokelenga.
              \is Mwaka wakuusoneka
              \ip Mukanda uno vausonekele mukachi kamwaka wa1450 na1400 shimbu kanda kusemuka chaMwata Yesu Kulishitu.
              \is Vihande vili mumukanda
              \ip Lijina lyamukanda uno lyafuma hakupwa ukiko mukanda vasonekelemo kulava chavaIsalele. Mukanda waKulava waswika kuvihande vize vyatwama mumukanda waKulovoka. Kaha wapwa mukanda mwatwama chihande chakukimba chavana vaIsalele mumakango, kutesa nakuzeneka chavo kwononoka Kalunga kavo Uze avasokwele muundungo, numba vahone kwingilila kuKatesha-Mbalaneya mulifuchi lize lyalushiko.
              \ip Wapwa mukanda walumbununa milimo nakutambuka chavana vaIsalele, kaha tunahase kuufwanyisa nachiyoyelo chamuka-Kulishitu. Kaha wapwa mukanda wavihande vyamwakutambukila mwakalemesa kumeso aKalunga, kaha wakukulula vihande vili mumikanda yikwavo, ngana —
              \ili KUPUTUKA — wapwa mukanda wavuluka tengeso yaKalunga, kuvulumuna chamutu, nahaputukila tanga yavaIsalele.
              \ili KULOVOKA — wavuluka kusokoka chavana vaIsalele
              \ili WAVYAVALEVI — wavuluka kulifukula kuli Kalunga nakulikata nenyi
              \ili KULAVA — wavuluka vyosena vize vyapandama kumilimo yavo nakutambuka chavo.
              \ip Chachilemu etu kutachikiza ngwetu, kakweshi mutu vechelele alilingile mwaya kusaka chenyiko. Ngamba hingamba yaKalunga muli vana vaIsalele apwile wakulava, kaha atachikijile chihela chenyi muze mutanga yenyi, namulimo wenyi uze vamuhanyine kuzatanga. Mukanda waKulava tunahase kuufwanyisa navize vasoneka kuMukanda wavaka-Kolinde wakavanga mukapetulu likumi nakavali (1 Kolinde 12) haze vavuluka chilyo hichilyo chamujimba chapwa chachilemu, kaha nawa chatwama namulimo wacho.
              \ip Chikwavo nawa — chize kweseka chosena vesekele vaIsalele muze mumakango, kavachihashileko, vachihonene hakuzeneka kufwelela Kalunga. Ngocho etu kuvanga tuzame mulufwelelo.
              \is Vihanda vitanu vili mumukanda
              \ili1 vaIsalele nomu vatambukililenga mumazavu avo, 1:1—10:10
              \ili1 Kufuma kupili yaShinai nakuheta kuKateshe-mbalaneya, 10:11—12:16
              \ili1 VaIsalele hakupwa kuKateshe-mbalaneya, 13:1—19:22
              \ili1 Kutambwojoka chavaIsalele mumakango, 20:1—33:49
              \ili1 Kuvalweza chakukumishilako, 33:50—36:13.
              Kulava 1
              Kulava 1:1 Halikumbi lyakavanga mukakweji wamuchivali, mumwaka wamuchivali kufuma haze valovokele mulifuchi lyaEjipitu, Yehova alwezele Mose mumakango aShinai muMbalaka yakuliwanyina ngwenyi,
              Kulava 1:2 Lavenu lizavu lyavana vaIsalele lyosena mwaya jitanga javo muvisaka vyavakakuluka javo mukuvula chamajina avo, malunga vosena umwe naumwe,
              Kulava 1:3 kufuma kuli ava vamyaka makumi avali (20) nakusambula, vosena vaze vakuhasa kulwa jita muli vaIsalele. Ove naAlone muvalave halizavu halizavu.
              Kulava 1:4 Kaha kutanga hitanga kufume lunga apwenga nayenu, kaha mutu himutu apwenga mwata wakutanga yavakakuluka jenyi.
              Kulava 1:5 Awa akiko majina amalunga navamikafwa — mutanga yaLuvene mufume Elizule mwanaSheteule.
              Kulava 1:6 Mutanga yaShimeyone mufume Shelumiyele mwanaZulishatai.
              Kulava 1:7 Mutanga yaYuta mufume Nashone mwanaAminatave.
              Kulava 1:8 Mutanga yaIsakale mufume Netanele mwanaZuwale.
              Kulava 1:9 Mutanga yaZevulune mufume Eliyave mwanaHelone.
              Kulava 1:10 Vamuli vana vaYosefwe navapwa ava — mutanga yaEfwalime mufume Elishama mwanaAmihute, mutanga yaManase mufume Ngamalyele mwanaPetazule.
              

              After the replacement you’re left with the expected text :

              Kulava 1
              Kulava 1:1 Halikumbi lyakavanga mukakweji wamuchivali, mumwaka wamuchivali kufuma haze valovokele mulifuchi lyaEjipitu, Yehova alwezele Mose mumakango aShinai muMbalaka yakuliwanyina ngwenyi,
              Kulava 1:2 Lavenu lizavu lyavana vaIsalele lyosena mwaya jitanga javo muvisaka vyavakakuluka javo mukuvula chamajina avo, malunga vosena umwe naumwe,
              Kulava 1:3 kufuma kuli ava vamyaka makumi avali (20) nakusambula, vosena vaze vakuhasa kulwa jita muli vaIsalele. Ove naAlone muvalave halizavu halizavu.
              Kulava 1:4 Kaha kutanga hitanga kufume lunga apwenga nayenu, kaha mutu himutu apwenga mwata wakutanga yavakakuluka jenyi.
              Kulava 1:5 Awa akiko majina amalunga navamikafwa — mutanga yaLuvene mufume Elizule mwanaSheteule.
              Kulava 1:6 Mutanga yaShimeyone mufume Shelumiyele mwanaZulishatai.
              Kulava 1:7 Mutanga yaYuta mufume Nashone mwanaAminatave.
              Kulava 1:8 Mutanga yaIsakale mufume Netanele mwanaZuwale.
              Kulava 1:9 Mutanga yaZevulune mufume Eliyave mwanaHelone.
              Kulava 1:10 Vamuli vana vaYosefwe navapwa ava — mutanga yaEfwalime mufume Elishama mwanaAmihute, mutanga yaManase mufume Ngamalyele mwanaPetazule.
              

              You may test this regex :

              • By changing the name after the \toc2 string and changing, accordingly, the same name on the line right above the Kulava 1:1 Halikumbi lyakavanga mukakweji wamuchivali, mumwaka ............ line => The regex should work and deletes the preamble form

              • By changing the name after the \toc2 string and putting an other name on the line right above the Kulava 1:1 Halikumbi lyakavanga mukakweji wamuchivali, mumwaka ............ line => This time, the regex should not work and no replacement happens ( it would also be the case with, for example, the line \toc2 Kulava and the line kulava 1, below, all in lower case ! )

              Best Regards,

              guy038

              Robert Or Janet DiebelR 2 Replies Last reply Reply Quote 0
              • Robert Or Janet DiebelR
                Robert Or Janet Diebel @guy038
                last edited by

                @guy038 I have one last hurtle in this project.
                With the number of examples you have given I feel I should be able to get it eventually. It also relates to getting the book and using it in the search.
                Given:

                Kulava 1
                Kulava 1:1 Halikumbi lyakavanga mukakweji wam
                Kulava 1:2 Lavenu lizavu lyavana vaIsalele ly
                Kulava 1:3 kufuma kuli ava vamyaka makumi ava
                Kulava 1:4 Kaha kutanga hitanga kufume lunga 
                Kulava 1:5 Awa akiko majina amalunga navamika
                Kulava 1:6 Mutanga yaShimeyone mufume Shelumi
                Kulava 1:7 Mutanga yaYuta mufume Nashone mwan
                Kulava 1:8 Mutanga yaIsakale mufume Netanele 
                Kulava 1:9 Mutanga yaZevulune mufume Eliyave 
                Kulava 1:10 Vamuli vana vaYosefwe navapwa ava
                

                I wish to Replace the {space} with tab after “Book{Space}Chapter#:Verse#” and before verse text like:

                Kulava 1
                Kulava 1:1	Halikumbi lyakavanga mukakweji wam
                Kulava 1:2	Lavenu lizavu lyavana vaIsalele ly
                Kulava 1:3	kufuma kuli ava vamyaka makumi ava
                Kulava 1:4	Kaha kutanga hitanga kufume lunga 
                Kulava 1:5	Awa akiko majina amalunga navamika
                Kulava 1:6	Mutanga yaShimeyone mufume Shelumi
                Kulava 1:7	Mutanga yaYuta mufume Nashone mwan
                Kulava 1:8	Mutanga yaIsakale mufume Netanele 
                Kulava 1:9	Mutanga yaZevulune mufume Eliyave 
                Kulava 1:10	Vamuli vana vaYosefwe navapwa ava
                

                This works manually entering the Book:

                "(Kulava\s\d+:\d+)\s(.*)$" Replace "$1\t$2"
                

                I am trying to get the lookahead working.
                As stated before:
                “I am working on it, but if you have any guidance, that would be great, and much appreciated.”
                I do seem to be missing something. Sorry!

                1 Reply Last reply Reply Quote 0
                • Robert Or Janet DiebelR
                  Robert Or Janet Diebel @guy038
                  last edited by

                  @guy038 said in RegEx Help with Backreference I think:
                  I am struggling with trying to accomplish what I think is required.
                  FIND BookName and isolate into a Group
                  Indicate the text to be acted on
                  Input required change, the goal
                  Put the change into the REPLACE field

                  I think that is it, but fitting it into a lookahead RegEx is still eluding me.

                  I will continue to work on it, but I have been for hours, and any guidance would be great.

                  1 Reply Last reply Reply Quote 0
                  • guy038G
                    guy038
                    last edited by guy038

                    Hi, @robert-or-janet-diebel,

                    I think that the most simple solution is to verify that, throughout your file, any “space” character, after the verse number, is ALWAYS a tabulation char !


                    So, given your ssimple INPUT text :

                    Kulava 1
                    Kulava 1:1 Halikumbi lyakavanga mukakweji wamuchivali, mumwaka wamuchivali kufuma haze valovokele mulifuchi lyaEjipitu, Yehova alwezele Mose mumakango aShinai muMbalaka yakuliwanyina ngwenyi,
                    Kulava 1:2 Lavenu lizavu lyavana vaIsalele lyosena mwaya jitanga javo muvisaka vyavakakuluka javo mukuvula chamajina avo, malunga vosena umwe naumwe,
                    Kulava 1:3 kufuma kuli ava vamyaka makumi avali (20) nakusambula, vosena vaze vakuhasa kulwa jita muli vaIsalele. Ove naAlone muvalave halizavu halizavu.
                    Kulava 1:4 Kaha kutanga hitanga kufume lunga apwenga nayenu, kaha mutu himutu apwenga mwata wakutanga yavakakuluka jenyi.
                    Kulava 1:5 Awa akiko majina amalunga navamikafwa — mutanga yaLuvene mufume Elizule mwanaSheteule.
                    Kulava 1:6 Mutanga yaShimeyone mufume Shelumiyele mwanaZulishatai.
                    Kulava 1:7 Mutanga yaYuta mufume Nashone mwanaAminatave.
                    Kulava 1:8 Mutanga yaIsakale mufume Netanele mwanaZuwale.
                    Kulava 1:9 Mutanga yaZevulune mufume Eliyave mwanaHelone.
                    Kulava 1:10 Vamuli vana vaYosefwe navapwa ava — mutanga yaEfwalime mufume Elishama mwanaAmihute, mutanga yaManase mufume Ngamalyele mwanaPetazule.
                    

                    The following regex S/R :

                    • FIND ^(.+ \d+:\d+)[\x20\t]+

                    • REPLACE ${1}\t

                    would return this OUTPUT text :

                    Kulava 1
                    Kulava 1:1	Halikumbi lyakavanga mukakweji wamuchivali, mumwaka wamuchivali kufuma haze valovokele mulifuchi lyaEjipitu, Yehova alwezele Mose mumakango aShinai muMbalaka yakuliwanyina ngwenyi,
                    Kulava 1:2	Lavenu lizavu lyavana vaIsalele lyosena mwaya jitanga javo muvisaka vyavakakuluka javo mukuvula chamajina avo, malunga vosena umwe naumwe,
                    Kulava 1:3	kufuma kuli ava vamyaka makumi avali (20) nakusambula, vosena vaze vakuhasa kulwa jita muli vaIsalele. Ove naAlone muvalave halizavu halizavu.
                    Kulava 1:4	Kaha kutanga hitanga kufume lunga apwenga nayenu, kaha mutu himutu apwenga mwata wakutanga yavakakuluka jenyi.
                    Kulava 1:5	Awa akiko majina amalunga navamikafwa — mutanga yaLuvene mufume Elizule mwanaSheteule.
                    Kulava 1:6	Mutanga yaShimeyone mufume Shelumiyele mwanaZulishatai.
                    Kulava 1:7	Mutanga yaYuta mufume Nashone mwanaAminatave.
                    Kulava 1:8	Mutanga yaIsakale mufume Netanele mwanaZuwale.
                    Kulava 1:9	Mutanga yaZevulune mufume Eliyave mwanaHelone.
                    Kulava 1:10	Vamuli vana vaYosefwe navapwa ava — mutanga yaEfwalime mufume Elishama mwanaAmihute, mutanga yaManase mufume Ngamalyele mwanaPetazule.
                    

                    You could suppose that using a look-behind, for the first part of the whole search regex, would work :

                    • FIND (?<=^.+ \d+:\d+)[\x20\t]+

                    • REPLACE \t

                    But, this construction is illegal as our Boost regex engine does not support look-behinds of VARIABLE length !


                    To get around this drawback, we may use the \K feature :

                    • First, the search regex matches any leading part ..... \d+:\d+

                    • As soon as it meets the \K feature, the regex engine :

                      • Cancels any previous search, so far

                      • Adjusts the engine regex position to the position of \K so, right after the verse number and before any mixed range of tabulations or space characters ( [\x20\t]+ )

                      • Re-start the search of the final part [\x20\t]+

                    And leads to the following regex S/R :

                    • FIND ^.+ \d+:\d+\K[\x20\t]+

                    • REPLACE \t

                    IMPORTANT : If you’re using this second regex S/R with the \K feature, the replacement MUST be a global one, using the Replace All button. You CANNOT use the step by step replacement with the Replace button !

                    Best regards,

                    guy038

                    Robert Or Janet DiebelR 1 Reply Last reply Reply Quote 0
                    • Robert Or Janet DiebelR
                      Robert Or Janet Diebel @guy038
                      last edited by

                      @guy038 Thanx for your kind dedication and patience in helping me. I can now do in a couple of minutes what was taking days.
                      Starting again armed with the new MACROs is indeed a new beginning.
                      I wish you and Terry every blessings

                      1 Reply Last reply Reply Quote 1
                      • guy038G
                        guy038
                        last edited by guy038

                        Hello, @robert-or-janet-diebel,

                        Regarding my last regex to normalize “space” characters to ONE tabulation char, only, I thought of a better regex S/R, which should speed up all the process as it skips all the correct lines containing just one tabulation character !

                        My very-Best-Novel 20:10  Mutanga yaYuta mufume Nashone mwanaAminatave.
                        My very-Best-Novel 20:10		   Mutanga yaYuta mufume Nashone mwanaAminatave.
                        My very-Best-Novel 20:10	Mutanga yaYuta mufume Nashone mwanaAminatave.
                        My very-Best-Novel 20:10		Mutanga yaYuta mufume Nashone mwanaAminatave.
                        My very-Best-Novel 20:10 Mutanga yaYuta mufume Nashone mwanaAminatave.
                        
                        • FIND ^.+ \d+:\d+\K(?:[\x20\t]{2,}|\x20)

                        • REPLACE \t

                        • Click on the Replace All button

                        The third line is skipped as it just contains 1 tab char and we get the OUTPUT text :

                        My very-Best-Novel 20:10	Mutanga yaYuta mufume Nashone mwanaAminatave.
                        My very-Best-Novel 20:10	Mutanga yaYuta mufume Nashone mwanaAminatave.
                        My very-Best-Novel 20:10	Mutanga yaYuta mufume Nashone mwanaAminatave.
                        My very-Best-Novel 20:10	Mutanga yaYuta mufume Nashone mwanaAminatave.
                        My very-Best-Novel 20:10	Mutanga yaYuta mufume Nashone mwanaAminatave.
                        

                        Note the use of a non-capturing group (?:......) as we do not need the contents of this group, either, in the search and/or the replace regex !

                        Best Regards,

                        guy038

                        Robert Or Janet DiebelR 1 Reply Last reply Reply Quote 0
                        • Robert Or Janet DiebelR
                          Robert Or Janet Diebel @guy038
                          last edited by

                          @guy038 Thank You very much for the extra effort.

                          1 Reply Last reply Reply Quote 1
                          • Robert Or Janet DiebelR
                            Robert Or Janet Diebel @guy038
                            last edited by

                            @guy038 Still benefiting from you previous help.
                            Could you please give me some guidance with a problem in this RegEx?
                            “(?-is)\v (?=(?s:.+?^(\u[\u\l -]+ \d+$)))”
                            It is the second step in this MACRO.

                            <?xml version="1.0" encoding="UTF-8" ?>
                            <NotepadPlus>
                                <InternalCommands />
                                <Macros>
                                    <Macro name="Trim Trailing Space and Save" Ctrl="no" Alt="yes" Shift="yes" Key="83">
                                        <Action type="2" message="0" wParam="42024" lParam="0" sParam="" />
                                        <Action type="2" message="0" wParam="41006" lParam="0" sParam="" />
                                    </Macro>
                                    <Macro name="BookAndVerse" Ctrl="no" Alt="no" Shift="no" Key="0">
                                        <Action type="2" message="0" wParam="42083" lParam="0" sParam="" />
                                        <Action type="3" message="1700" wParam="0" lParam="0" sParam="" />
                                        <Action type="3" message="1601" wParam="0" lParam="0" sParam="(?-s)^\\c (\d+)(?=(.*\R)+?\\toc2 (.+)$)" />
                                        <Action type="3" message="1625" wParam="0" lParam="2" sParam="" />
                                        <Action type="3" message="1602" wParam="0" lParam="0" sParam="${3} ${1}" />
                                        <Action type="3" message="1702" wParam="0" lParam="512" sParam="" />
                                        <Action type="3" message="1701" wParam="0" lParam="1609" sParam="" />
                                        <Action type="3" message="1700" wParam="0" lParam="0" sParam="" />
                                        <Action type="3" message="1601" wParam="0" lParam="0" sParam="(?-is)\\v (?=(?s:.+?^(\u[\u\l -]+ \d+$)))" />
                                        <Action type="3" message="1625" wParam="0" lParam="2" sParam="" />
                                        <Action type="3" message="1602" wParam="0" lParam="0" sParam="${1}:" />
                                        <Action type="3" message="1702" wParam="0" lParam="512" sParam="" />
                                        <Action type="3" message="1701" wParam="0" lParam="1609" sParam="" />
                                        <Action type="2" message="0" wParam="42083" lParam="0" sParam="" />
                                    </Macro>
                                </Macros>
                                <UserDefinedCommands>
                                    <Command name="Get PHP help" Ctrl="no" Alt="yes" Shift="no" Key="112">https://www.php.net/$(CURRENT_WORD)</Command>
                                    <Command name="Wikipedia Search" Ctrl="no" Alt="yes" Shift="no" Key="114">https://en.wikipedia.org/wiki/Special:Search?search=$(CURRENT_WORD)</Command>
                                    <Command name="Open selected file path in new instance" Ctrl="no" Alt="yes" Shift="no" Key="117">$(NPP_FULL_FILE_PATH) $(CURRENT_WORD) -nosession -multiInst</Command>
                                </UserDefinedCommands>
                                <PluginCommands />
                                <ScintillaKeys />
                            </NotepadPlus>
                            
                            

                            Here is the test file.

                            \id 1SA PDP 2013
                            \h 1 SAMWELE
                            \toc1 Mukanda waSamwele wakavanga
                            \toc2 1 Samwele
                            \toc3 1 Samw
                            \mt2 MUKANDA WA
                            \mt1 SAMWELE WAKAVANGA
                            \imt Kujimbula mukanda
                            \is Ásonekele mukanda
                            \ip Ou mukanda vauvulukila vatu vatatu ngwavo vakiko vausonekele — kapolofweto Samwele, nakapolofweto Natane, nakapolofweto Ngate. Tala 1 Mijimbu 29:29.
                            \is Mwaka wakuusoneka
                            \ip Mwaka vasonekele ou mukanda wapwile mukachi kamyaka yakuputukila ha931 B.C. nakuheta ku722 B.C. shimbu kanda Yesu Kulishitu asemuke.
                            \is Vihande vili mumukanda
                            \ip Ou mukanda wapwa mujimbu wachikukulwishi chavihande vyaSamwele uze apwile wakukumishilako muli vaka-kuyula. Vavulukamo omu upilishitu waEli navana venyi, hamwe navaka-kuyula vazenekele kukavangiza mukwoloka chaKalunga, nomu vatu vakanyine muze Samwele asakile ngwenyi mulimo kana upwenga wakuswananga vana venyi kaha (1 Samwele 8:7).
                            \ip Chipwe ngocho, Samwele ivene apwile kapolofweto wakushishika, kaha hali ikiye hakiko haputukilile vapolofweto vaze vasonekelenga vyaupolofweto. Kaha kufuma hali ikiye, hakiko hafumakanyinyine milimo yaupolofweto mulifuchi lyavana vaIsalele kuhambakana yaupilishitu.
                            \ip Muno mumukanda mukiko vasolola omu chiyulo chaKalunga chakumine chize apwile nakuyulila muli vaka-kuyula (1 Samwele 8:7), nomu wangana waputukilile hali Saulu.
                            \is Vihanda viwana vili mumukanda
                            \ip Vihanda viwana vyauno mukanda:
                            \ili1 Chihande chaSamwele nakuheta kukufwa chaEli, 1:1—4:22.
                            \ili1 Kufuma hakumbata Chikasha chaUnjiho nakuheta kukufwila kupwa namwangana, 5:1—8:22.
                            \ili1 Chiyulo chaSaulu nakuheta kukusanyika chaNdavichi, 9:1—15:35.
                            \ili1 Kufuma kukusanyika chaNdavichi nakuheta kukufwa chaSaulu, 16:1—31:13.
                            \ib
                            \ip Mijimbu yosena yamuMUKANDA WASAMWELE WAKAVANGA yasolokele hatando yamyaka likulukaji nalikumi nayitanu (115), kutesa nakulava chaJames Usher\f + \fr 1:0 \ft James Usher apwile muka-kufwelela alihanyine kumulimo wakutala myaka vyasolokele vyuma kuMukanda waKalunga.\f*.
                            \c 1
                            \s Kusemuka chaSamwele
                            \p
                            \v 1 Jino kwapwile lunga umwe wa\add mulimbo-lyakembwe\add* lya\png Lamataime-zofwime\png*, \add mungalila\add* yajipili ja\png Efwalime\png*, lijina lyenyi Elekana, mwanaYelohame, \add Yelohame\add* mwanaElihu, \add Elihu\add* mwanaTohu, \add Tohu\add* mwanaZufu wakutanga yaEfwalime\f + \fr 1:1 \ft Mumikanda yimwe ngwavo, Efwalata.\f*.
                            \m
                            \v 2 Apwile namapwevo vavali. Umwe lijina lyenyi Hana, kaha mukwavo lijina lyenyi Penina. Penina apwile navana, oloze Hana kapwile navanako.
                            \p
                            \v 3 Kaha \x + \xo 1:3 \xt Kulo 34:23\x*hamwaka hamwaka, ou lunga akandukilenga kufuma kwimbo lyenyi nakuya ku\add limbo-lyakembwe\add* \x + \xo 1:3 \xt Yosh 18:1 \x*lya\png Shilo\png* nakulifukula kuli \nd Yehova wamayongomena\nd*\f + \fr 1:3 \ft Yehova wamayongomena, likiko lijina lyaKalunga. Lyasolola omu apwa Mwenya vyosena, Muka-kuyula kwosena kwosena, Ukwechi ngolo josena, Ikiye nawa Muka-kuyula mayongomena avaka-jita mwilu.\f*, nakumuvatwila vimuna. Kaha vana vaEli vamalunga vavali, vaHofwinyi naFwinehase, vapwile vapilishitu ja\nd Yehova\nd* kuze.
                            \m
                            \v 4 Jino omu lyahetelenga likumbi ávatwilenga Elekana chimuna, \x + \xo 1:4 \xt Kuhi 12:17, 18\x*ahanyinenga pwevo lyenyi Penina navana venyi vamalunga naava vamapwevo vosena, \add mutu himutu\add* chazano chenyi \add chanyama yakulya kufuma kuli uze chimuna wakuvatula\add* —
                            \m
                            \v 5 oloze ahanyinenga Hana vyazano vivali mwomwo amuzangile, chipwe tuhu Yehova ajikile lusemo lwenyi.
                            \m
                            \v 6 Chipwe ngocho, \add Hana\add* vamusowangijilenga lika kuli muhalika wenyi nakumusangumuna, hakumona \nd Yehova\nd* ajikile lusemo lwenyi.
                            \m
                            \v 7 Jino omu \add Elekana\add* alingilenga ngocho hamwaka hamwaka, na\add Hana\add* nawa akandukilenga kuZuvo ya\nd Yehova\nd*, kaha muhalika wenyi amusowangijilenga lika. Shikaho \add Hana\add* alililenga nakulitwaminanga kulya.
                            \m
                            \v 8 Kaha lunga lyenyi Elekana amuhulishile ngwenyi, Ove Hana, mwomwo ika uli nakulila? Mwomwo ika uli nakukanyina kulya? Mwomwo ika uli nakulinyengela? Kumana kuli ove kangwahambakana vana vamalunga likumiko (10) tahi?
                            \p
                            \v 9 Shikaho omu vakumishile kulya nakunwa kuze ku\png Shilo\png*, Hana akatukile \add ayenga nakulomba\add*. Jino kapilishitu Eli apwile kuchipamba chachikolo chaTembele ya\nd Yehova\nd*, natwame hachitwamo.
                            \m
                            \v 10 Hana apwile nakulyonyinga mumuchima, kaha alombele kuli \nd Yehova\nd* nakulila chikuma.
                            \m
                            \c 2
                            \s Mwaso waHana
                            \p
                            \v 1 Jino Hana \x + \xo 2:1\xt 2:1-10; Luka 1:46-55\x*alifukwile ngwenyi,
                            \q1 Muchima wami uli nakulisambila muli \nd Yehova\nd*,
                            \q2 \x + \xo 2:1\xt Kuhi 33:17; Yopa 16:15; Samu 89:17\x*\add Ngolo jami vanajivulisa\add* kuli \nd Yehova\nd* nge lumbinga lwakuzezuka\f + \fr 2:1 \ft Lumbinga lwakanyama lwasolola ngolo jenyi.\f*,
                            \q1 Kanwa kami kali nakupayisa vaka-kole jami,
                            \q2 Mwomwo \x + \xo 2:1\xt Isa 12:2, 3\x*nguli nakuwahilila muulwilo wove.
                            \q1
                            \v 2 Kakwatwama weka \nd Ajila\nd* nge \nd Yehova\nd*ko,
                            \q2 Mwomwo \add Kalunga\add* weka wauchi, kuvanga Ove kaha,
                            \q3 Kaha kakwatwama \x + \xo 2:2\xt Kuhi 32:30, 31\x*\nd Lilolwa lyakukola\nd* \add twázamina\add* nge Kalunga ketuko.
                            \q1
                            \v 3 Kanda namuhanjika cheka nakatangalajiko,
                            \q2 Mutunwa twenu kanda namulovoka kulisasa chachipiko,
                            \q1 Mwomwo \nd Yehova\nd* apwa Kalunga \x + \xo 2:3\xt 16:7; 1 Vamy 8:39\x*wachinyingi,
                            \q2 Kaha Ikiye apwa \x + \xo 2:3\xt Vish 16:2; 24:12\x*\nd Muka-kupezalisa\nd* vilinga.
                            \q1
                            \v 4 Mata amanana avindume anahokoka,
                            \q2 Oloze vakutalyangila \x + \xo 2:4\xt Hepe 11:32-34 \x*vanalijichika ngolo.
                            \q1
                            \v 5 Vaze vekuchile vanalite kuungamba mangana vawanyineko vyakulya,
                            \q2 Oloze vaze vapwile nazala kaveshi nakwivwa zalako jino.
                            \q1 Mumba naseme vatanu navavali,
                            \q2 Kaha ou ali navana vavavulu nazeye.
                            \q1
                            \v 6 \nd Yehova\nd* eji \x + \xo 2:6\xt Kuhi 32:39; Kuso 1:18\x*kujihanga, kaha eji kuyoyesanga,
                            \q2 Eji kushikumwisanga ku\pn Sheyole\pn*\f + \fr 2:6\ft Nge ngwenyi, kwaya vafu.\f*, kaha eji kukandwisanga.
                            \q1
                            \v 7 \nd Yehova\nd* eji kuhutwisanga, kaha eji kuhananga luheto,
                            \q2 Eji kwinyisanga, kaha eji kuzezulanga nawa,
                            \q1
                            \v 8 Eji kukatulanga vaka-kuhutwa nakuvafumisa mulukungu,
                            \q2 Eji kuzezulanga vaka-kukalikiza nakuvafumisa kuchishita,
                            \q1 Nakuvatwamisa hamwe navilolo vavalemu,
                            \q2 Mangana vaswane litanda lyaupahu.
                            \q1 Mwomwo \x + \xo 2:8 \xt Yopa 38:4-6; Samu 24:2; 102:25; 104:5\x*jipanda jakwata mavu japwa ja\nd Yehova\nd*,
                            \q2 Kaha hajikiko azamishila kaye.
                            \q1
                            \v 9 \x + \xo 2:9\xt Samu 91:11, 12; 1 Pet 1:5\x*Mwalamanga muze vatambuka\f + \fr 2:9 \ft MuchiHepeleu ngwavo, vilyachilo.\f* vaka-kujila jenyi,
                            \q2 Oloze tuvihu navakavaholesa mumilima,
                            \q1 Mwomwo mutu hakupwa nangolo,
                            \q2 Keshi hakiko mwahasa kufungulwilako.
                            \q1
                            \v 10 Weshowo mwalipika na\nd Yehova\nd* \x + \xo 2:10\xt Kulo 15:6; Samu 2:9\x*navamuhokwojola.
                            

                            The MACRO works when the name in \toc2 is just a word
                            When it starts with a number as in “\toc2 1 Samwele” it fails
                            It needs to allow for the possible presence of a number (1, 2, or 3).
                            But it is usually just a word.

                            Could I get some guidance with this please?

                            1 Reply Last reply Reply Quote 0
                            • guy038G
                              guy038
                              last edited by

                              Hello, @robert-or-janet-diebel,

                              Well, I’m terribly sorry because, given your INPUT text provided in your last post, the two search regexes, of your BookAndVerse macro, below, do not get any match ??

                              • FIND (?-s)^\\c (\d+)(?=(.*\R)+?\\toc2 (.+)$)

                              • FIND (?-is)\\v (?=(?s:.+?^(\u[\u\l -]+ \d+$)))

                              Did you provide the right INPUT text to test against ?

                              BR

                              guy038

                              Robert Or Janet DiebelR 3 Replies Last reply Reply Quote 0
                              • Robert Or Janet DiebelR
                                Robert Or Janet Diebel @guy038
                                last edited by Robert Or Janet Diebel

                                @guy038 Thanx for responding.
                                If I run the MACRO to change \c & \v with a number and a word (\toc2 1 Samwele) it fails.
                                If I remove the number (\toc2 Samwele) it works. The number and {space} cause failure.
                                Could the RegEx be altered to allow the number and {space}?

                                1 Reply Last reply Reply Quote 0
                                • Robert Or Janet DiebelR
                                  Robert Or Janet Diebel @guy038
                                  last edited by

                                  This post is deleted!
                                  1 Reply Last reply Reply Quote 0
                                  • Robert Or Janet DiebelR
                                    Robert Or Janet Diebel @guy038
                                    last edited by

                                    @guy038 The MACRO reverses line order.
                                    I can maybe get the changes done with a number of simpler RegEx’s run after the fact, but I would prefer it totally automated if possible.
                                    Another alternative is to separate the Numbered books and have a separate RegEx to run against them that would allow a number and {space}

                                    1 Reply Last reply Reply Quote 0
                                    • guy038G
                                      guy038
                                      last edited by guy038

                                      Hi , @robert-or-janet-diebel,

                                      Oh… How silly I am ! You’re perfectly right. At first sight, I do not remark this important line, beginning your BookAndVerse macro :

                                                  <Action type="2" message="0" wParam="42083" lParam="0" sParam="" />
                                      

                                      So, instead of using the ^\u[\u\l -]+ part, for the name, we can use, either, the regexes :

                                      • ^\w[\w'’ -]+

                                      or

                                      • ^[[:alnum:]][[:alnum:]'’ -]+ IF no LOW LINE character ( \x{005F} ) occurs in the name

                                      Within these two regexes, I also added the two apostrophe syntaxes ['’]. If you do not need them, don’t add them in the character class !

                                      So, given this example, below :

                                      My very-Best-Novel
                                      1 Samwele
                                      5 L'été de tous les dangers
                                      5 L’été de tous les dangers
                                      1_ te_ST
                                      
                                      • The first regex ^\w[\w'’ -]+ would match the five lines above

                                      • The second regex ^[[:alnum:]][[:alnum:]'’ -]+ would match the first four lines, only


                                      Thus, If we take the general case, you must change, in your Step 2, the search regex as below :

                                      • FIND (?-is)\\v (?=(?s:.+?^(\w[\w'’ -]+ \d+$)))

                                      Best Regards,

                                      guy038

                                      Robert Or Janet DiebelR 4 Replies Last reply Reply Quote 0
                                      • Robert Or Janet DiebelR
                                        Robert Or Janet Diebel @guy038
                                        last edited by Robert Or Janet Diebel

                                        @guy038 I am so very thankful for your help.
                                        Sorry I forgot to point out the line order reversal.
                                        I will give it a try!
                                        All the best to you and yours.

                                        1 Reply Last reply Reply Quote 0
                                        • Robert Or Janet DiebelR
                                          Robert Or Janet Diebel @guy038
                                          last edited by

                                          @guy038 That is working great! I am so thankful!
                                          Dare I mention my last failing MACRO that should change the {space} after the Book-Chapter:verse to a TAB?
                                          Same issue, it works if there is no number.
                                          I will try to figure it out, but if you have any guidance, it would be appreciated.

                                                  <Macro name="Space2Tab" Ctrl="no" Alt="no" Shift="no" Key="0">
                                                      <Action type="3" message="1700" wParam="0" lParam="0" sParam="" />
                                                      <Action type="3" message="1601" wParam="0" lParam="0" sParam="^(\w+\s\d+:\d+)\s(.*)$" />
                                                      <Action type="3" message="1625" wParam="0" lParam="2" sParam="" />
                                                      <Action type="3" message="1602" wParam="0" lParam="0" sParam="$1\t$2" />
                                                      <Action type="3" message="1702" wParam="0" lParam="512" sParam="" />
                                                      <Action type="3" message="1701" wParam="0" lParam="1609" sParam="" />
                                                  </Macro>
                                          
                                          
                                          1 Reply Last reply Reply Quote 0
                                          • Robert Or Janet DiebelR
                                            Robert Or Janet Diebel @guy038
                                            last edited by

                                            @guy038 Got my space-to-tab working.
                                            Thanx for all your help!

                                            1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post
                                            The Community of users of the Notepad++ text editor.
                                            Powered by NodeBB | Contributors