• Login
Community
  • Login

Regex plese help - how to remove every 2nd and 3rd

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.
  • M
    Martin X
    last edited by Mar 28, 2020, 6:30 PM

    Hi Friends

    please help me how to manage this
    I want to remove every send and third line in my text file without leaving a blank line.

    This is my file:

    Login: xxxx
    Lng: Java:version- xxxx
    Code: xxx
    Login: xxxx
    Lng: Java:version- xxxx
    Code: xxx
    Login: xxxx
    Lng: Java:version- xxxx
    Code: xxx
    Login: xxxx
    Lng: Java:version- xxxx
    Code: xxx
    

    And i want to see

    Login: xxxx
    Login: xxxx
    Login: xxxx
    Login: xxxx
    
    1 Reply Last reply Reply Quote 0
    • T
      Terry R
      last edited by Mar 28, 2020, 6:33 PM

      @Martin-X said in Regex plese help - how to remove every 2nd and 3rd:

      I want to remove every send and third line

      As your file looks to only contain 3 types of lines, why not just sort the lines so all login lines are together. Then select all others and remove them.

      Terry

      A 1 Reply Last reply Mar 28, 2020, 6:43 PM Reply Quote 3
      • A
        Alan Kilborn @Terry R
        last edited by Mar 28, 2020, 6:43 PM

        @Terry-R makes a good point, but if the OP really wants to use a regex replacement, I’d suggest:

        Find what box: (?-s)^(Login:.+\R).+\R.+\R
        Replace with box: \1
        Match case checkbox: ticked
        Search mode radiobutton: Normal

        M 1 Reply Last reply Mar 28, 2020, 6:50 PM Reply Quote 4
        • M
          Martin X @Alan Kilborn
          last edited by Mar 28, 2020, 6:50 PM

          @Alan-Kilborn

          thank you
          your regular expression works but the last two lines remain
          Why it not remove them?

          before
          reg1.png
          after
          reg2.png

          1 Reply Last reply Reply Quote 1
          • T
            Terry R
            last edited by Terry R Mar 28, 2020, 7:17 PM Mar 28, 2020, 7:15 PM

            @Martin-X said in Regex plese help - how to remove every 2nd and 3rd:

            Why it not remove them?

            The reason is that the regex HAS to find 3 lines, all with end of line markers \R. Unfortunately the last line has a end of file marker instead. You will note that in your example it found 3 occurrences, not 4 as you should have expected.
            Another way to achieve what you want is to use the Mark function. Type Login: and make sure “bookmark line” is ticked. As the search text is constant this search can be done in normal mode even. Once the lines are marked (generally with a blue circle at start of line) you can then remove unmarked lines by going to Search\Bookmark\Remove unmarked lines. I did notice in a quick test that this also produces a side effect of leaving a blank line at the bottom of the file.

            Terry

            PS I note @Alan-Kilborn post stated search mode normal, however you had it as regular expression. Thats good as his post had that mistake but obviously you saw past that.

            A 1 Reply Last reply Mar 28, 2020, 7:46 PM Reply Quote 3
            • A
              Alan Kilborn @Terry R
              last edited by Alan Kilborn Mar 28, 2020, 7:47 PM Mar 28, 2020, 7:46 PM

              @Terry-R said in Regex plese help - how to remove every 2nd and 3rd:

              I note @Alan-Kilborn post stated search mode normal, however you had it as regular expression. Thats good as his post had that mistake but obviously you saw past that.

              Arrrgh. Apologies for the (obvious) mistake!

              Unfortunately the last line has a end of file marker instead.

              Yea, if we’re just talking about one file, just handle the last lines manually.
              If we’re talking thousands of files, though, you should state that initially and a solution that handles either kind of file ending can be developed.
              Or…use the editorconfig plugin and make sure all files are properly terminated with a line-ending (my preferred method).

              1 Reply Last reply Reply Quote 1
              • A
                Alan Kilborn
                last edited by Mar 28, 2020, 7:54 PM

                In this instance it isn’t that difficult to craft the solution that handles a file-ending of either type:

                Find what box: ^(Login:.+\R).+\R.+(?:\R|\z)
                Replace with box: \1
                Match case checkbox: ticked
                Search mode radiobutton: Regular expression

                M 1 Reply Last reply Mar 28, 2020, 8:24 PM Reply Quote 4
                • M
                  Martin X @Alan Kilborn
                  last edited by Mar 28, 2020, 8:24 PM

                  @Alan-Kilborn

                  Whank You very much :) works like a charm.

                  But I want to ask for another example.
                  How to change this regex

                  ^(Login:.+\R).+\R.+(?:\R|\z)
                  

                  if I want to get this effect:

                  xxxx
                  xxxx
                  xxxx
                  xxxx

                  instead of:

                  Login: xxxx
                  Login: xxxx
                  Login: xxxx
                  Login: xxxx

                  A 1 Reply Last reply Mar 28, 2020, 8:30 PM Reply Quote 0
                  • A
                    Alan Kilborn @Martin X
                    last edited by Mar 28, 2020, 8:30 PM

                    @Martin-X

                    Well, we ask people to “take away a bit of learning” from every piece of advice provided here.
                    Given that, what might you think would be a modification to what was given earlier that would do what you now need?

                    Unrelated: Using the previous resulting text as the new starting point, you could always search for Login: and replace with nothing. :-)

                    M 1 Reply Last reply Mar 28, 2020, 8:38 PM Reply Quote 0
                    • M
                      Martin X @Alan Kilborn
                      last edited by Mar 28, 2020, 8:38 PM

                      @Alan-Kilborn

                      trust me i try to learn something
                      i spent today about 3 hours to find solution for various text files
                      but this last one was to difficult for me

                      Now I want to make it in one regex to save some space
                      So i want to use one regex command to delete second and third line and “Login:”
                      and leave only
                      xxxx

                      Can You help me one more time?

                      1 Reply Last reply Reply Quote 0
                      • T
                        Terry R
                        last edited by Mar 28, 2020, 9:50 PM

                        @Martin-X said in Regex plese help - how to remove every 2nd and 3rd:

                        So i want to use one regex command to delete second and third line and “Login:”

                        I will give you some guidance. If you look at @Alan-Kilborn regex you will see the line that is written back is enclosed in brackets in the Find What line. The replace with line is \1 which is how we write back that information within the bracket. By changing the contents of the bracket (essentially moving the bracket to the right) you will change what the regex keeps.
                        Also note that you may have overlooked the space in the line you want to keep, now removing the front portion, so keep that in mind when editing his regex.

                        Terry

                        1 Reply Last reply Reply Quote 3
                        6 out of 11
                        • First post
                          6/11
                          Last post
                        The Community of users of the Notepad++ text editor.
                        Powered by NodeBB | Contributors