Community
    • Login

    Shifting a block of text to the beginning of a line

    Scheduled Pinned Locked Moved Help wanted · · · – – – · · ·
    11 Posts 3 Posters 2.5k 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.
    • Scott SumnerS
      Scott Sumner @C Ananda Rao
      last edited by

      @C-Ananda-Rao

      It is going to depend upon how strongly formatted your data is…but if it is as your example (which really isn’t very rigorous) shows, then this should work:

      Find what zone: (?-s)^(.+?), (#.+?),
      Replace with zone: \2, \1,

      The explanation is really too simple to turn it over to RegexBuddy:

      (?-s) -> any following . characters may NOT match across line-boundaries
      ^ -> match at the beginning of a line only
      (.+?) -> match one or more characters, but as few as possible, capture data into group #1
      , -> match a comma and a space, in that order
      (#.+?) -> match a octothorp plus one or more characters, but as few as possible, capture data into group #2
      , -> match a comma

      At replace time, we remove the match above, and substitute:

      \2 -> the contents captured above as group #2
      , -> a comma and a space
      \1 -> the contents captured above as group #1
      , -> a comma

      As you can see, this effectively swaps the first two comma separated fields on a line, but only if the second field begins with #

      1 Reply Last reply Reply Quote 1
      • C Ananda RaoC
        C Ananda Rao
        last edited by

        Dear Mr Scot Sumner
        Thank you so much! I was getting some “guru meditation” error while trying to open the notepad++ community site. But today I did not.

        I did exactly as you said. Actually to avoid typos, I copied and pasted the expressions into the search and replace fields.

        But notepad++ says :0 occurrences were replaced.

        Thank you for your help!

        Scott SumnerS 1 Reply Last reply Reply Quote 0
        • Scott SumnerS
          Scott Sumner @C Ananda Rao
          last edited by

          So all we really have to go on is the data you provided…it looks like this:

          #12-3-23/B, Some Street, Some village, Some District
          C/o Some Name, #9-22-1, Some Village, Some district
          

          If I run my suggested replacement on that, I get this:

          #12-3-23/B, Some Street, Some village, Some District
          #9-22-1, C/o Some Name, Some Village, Some district
          

          …and this seems to be what is wanted. I don’t really have any idea what you are doing differently. I’d suggest that you don’t have the Search mode set correctly, but you mentioned “regex” so I presume that you know you need to set the mode to Regular expression.

          C Ananda RaoC 1 Reply Last reply Reply Quote 1
          • C Ananda RaoC
            C Ananda Rao @Scott Sumner
            last edited by C Ananda Rao

            Dear Mr Sumner
            The data I provided is absolutely in the same format as two real addresses I have in my text file. Except that I removed names of persons and villages for the purposes of privacy and gave random digits and alphabets for addresses. The two lines are exact in so far as the spaces, commas and hash symbols are concerned. Some lines have more comma separated text, but most of the addresses have the door numbers in the second position (after the first comma - if you know what I mean). I removed training and leading spaces.

            I have the ‘Regular Expression’ radio button pressed in the ‘Search Mode’ box in notepad++.

            Is there a way I can send you my screen shot?

            Or should I remove all white spaces and then try again?

            Best regards!

            1 Reply Last reply Reply Quote 0
            • Terry RT
              Terry R
              last edited by

              Are you absolutely certain there is only 1 space after the comma? From the regex that was supplied its most likely the , # sequence where the issue lies. Unless you counted the white spaces by moving through it with the cursor you won’t know for sure.

              As a test do a Find, not Replace and type in the sequence I typed above in red. If that doesn’t catch any occurrences try it with 2 spaces, see if that finds any.

              Terry

              C Ananda RaoC 1 Reply Last reply Reply Quote 2
              • C Ananda RaoC
                C Ananda Rao @Terry R
                last edited by

                Dear Mr Terry R
                I did the following to the text file after first opening it:

                1. Remove leading and trailing spaces
                2. Replace all occurrences of 2 consecutive white spaces with 1 space. (There were even 3 spaces, which I removed and now there is just a single white space after every comma in every line)
                3. Remove commas that were at the end of some lines.
                4. I added a hash symbol to all the lines that began with a digit using the regex Mr Scott Sumner suggested. It worked.

                so far so good.

                but when I tried the regex for swapping the first and second blocks, it did not work.

                Best regards and thanks!

                1 Reply Last reply Reply Quote 0
                • Scott SumnerS
                  Scott Sumner
                  last edited by

                  I think we are at the limits of how we can provide help, unless you are willing to show us some data where you say it doesn’t work. This doesn’t have to be EXACT data which would be a violation of privacy–to prevent that use some kind of substitution cipher on it. Just make sure you only substitute letters for letters and numbers for numbers, and keep all other characters the same, including spacing.

                  People seem to have trouble showing exact data here, so what I’ll say to do is use Notepad++ to get the data exactly how you want to present it, and then copy it into this website…but right before the copy from Notepad++, add FOUR spaces to the start of each line. If you do that, when you preview your posting on this site, it will have a black background, like this:

                  hello
                  there
                  I am
                  properly
                  formatted
                  EXACT
                  data that
                  cannot
                  possibly
                  be misunderstood
                  
                  C Ananda RaoC 1 Reply Last reply Reply Quote 3
                  • C Ananda RaoC
                    C Ananda Rao @Scott Sumner
                    last edited by

                    Dear Mr Sumner
                    I am posting 6 lines of addresses and following your advice of adding 4 spaces before each line. I took precautions for privacy by giving fictitious names and door numbers. But the format is exactly the same as

                    H/O Kamala Devi, #34-9-321/D, Siva Lakshmi Nagar, Turupuralla (U), Mandya Dist, 22334455666
                    #25/432-A, Kondapalli (V), Galimeda (M), Kolar Dist 
                    #4-3-429, Koundinyapuram, Bhongir (U), Nellore Dist 
                    H/O Meenakshi Shetty, #123-11/3, N G Layout, Tanuku (U), Buvanagiri Dist 
                    H/O Santha Kumari, Ramannapet (V&P), Darsi (M), Chittoor Dist, 0123-4567890
                    S/O Gopal Reddy, #56-357, Martoor (V), Mulabagal Dist (M&D)
                    

                    Thanks and best regards!

                    1 Reply Last reply Reply Quote 2
                    • Scott SumnerS
                      Scott Sumner
                      last edited by Scott Sumner

                      So if I use the regular expressions given before on that data, I get as a result:

                      #34-9-321/D, H/O Kamala Devi, Siva Lakshmi Nagar, Turupuralla (U), Mandya Dist, 22334455666
                      #25/432-A, Kondapalli (V), Galimeda (M), Kolar Dist 
                      #4-3-429, Koundinyapuram, Bhongir (U), Nellore Dist 
                      #123-11/3, H/O Meenakshi Shetty, N G Layout, Tanuku (U), Buvanagiri Dist 
                      H/O Santha Kumari, Ramannapet (V&P), Darsi (M), Chittoor Dist, 0123-4567890
                      #56-357, S/O Gopal Reddy, Martoor (V), Mulabagal Dist (M&D)
                      

                      So it seems to be working; here’s what the setup looks like for it:

                      Imgur

                      Here’s a thought: What version of Notepad++ are you using?

                      C Ananda RaoC 1 Reply Last reply Reply Quote 2
                      • C Ananda RaoC
                        C Ananda Rao @Scott Sumner
                        last edited by C Ananda Rao

                        Dear Mr Sumner

                        Thank you! It worked now.
                        I am a little embarrassed to say, but I do not know what I did wrong the first time and what I did right this time.

                        Best Regards!

                        PS. I am using Notepad++ v7.5.8 32bit

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