Is it possible to copy mult line regex output that is marked/bookmarked?
-
I have enabled “.” matches new line character. This is to get the required result I need. Using the regex I find all possibilities. It gives me mult line regex output which is as expected.
Now when I mark all with bookmark then, “Mark” feature selects the exact lines I need but “bookmark” feature only bookmarks the first line of the regex multi line output.Hence I am unable to copy the multi line output.
Please let me know if it is possible to achieve what I intended to.Thanks,
Varun -
Hi Varun,
Don’t worry ! Indeed, there’s a solution, although a bit difficult to explain !!
So let’s start with that small sorted list of picture files, below :
AU.png 286 31/05/2016 arrow2.png 332 11/08/2016 arrow_bot.gif 164 11/03/2016 arrow_down.png 190 09/08/2016 arrow_off.png 180 20/08/2016 arrow_sprite.png 260 10/08/2016 arrow_up.png 45 09/12/2016 arrow_up.png 189 09/08/2016 arrowbefore.gif 52 01/01/2016 arrowbefore.gif 79 17/03/2016 arrowbefore.gif 125 09/08/2016 ast.png 164 29/08/2016 attention.gif 209 25/05/2016 attention.gif 359 10/03/2016 attention.gif 574 08/03/2016 back2.gif 78 26/03/2016 backward_disabled.gif 63 04/08/2016 backward_enabled.gif 63 04/08/2016 backward_enabled.gif 78 26/03/2016
In that list, some files are present two or three times, but with different sizes and modification dates². Let suppose that we would like to bookmark all the files which are present several times, in order to copy them, afterwards, in a new tab !
To find any file, present 3 times, we can use the regex
(?-s)^(.{25}).+\R\1.+\R\1
, which tries to match tree consecutives lines, with the first 25 characters, identical on these 3 lines. As the regex begins to search for the 25 first characters of the first line, only this first line, out of the three ones, will be marked. Logical !Now, to mark the second line of any group of three consecutives lines, with the first 25 characters identical, we’ll use the regex
(?-s)^(.{25}).+\R\K\1.+\R\1
Notes :
-
The
(?-s)
modifier, in front of the regex, forces the regex engine to consider that the dot matches standard character, ONLY ! -
The
\K
syntax reset the position of search of the regex engine. So, it forgets anything that what previously matched before the\K
form. Therefore, it just tries to match the regex\1.+\R\1
, that is to say the complete second line and the first 25 characters of the third line, from each group of 3 lines !
Finally to mark the third line, of any group of 3 lines, we’ll use the regex
(?-s)^(.{25}).+\R\1.+\R\K\1
. This time, once the\K
form read, it just matches the regex\1
, which corresponds to the 25 first characters of the third line of any group of 3 lines !To end with, we need to find any file, present 2 times, only. We are going to use the same method. So, we’ll use the regex
(?-s)^(.{25}).+\R\1
, which will mark the first lines, out of the two lines of each groupThen, in order to mark the second line, of each group of 2 lines, we’ll use the regex
(?-s)^(.{25}).+\R\K\1
Finally, after using the menu commands Search - Bookmark - Cut Bookmarked Lines OR Search - Bookmark - Copy Bookmarked Lines and pasting in a new tab, we get the list of all the items, present 2 or 3 times !
arrow_up.png 45 09/12/2016 arrow_up.png 189 09/08/2016 arrowbefore.gif 52 01/01/2016 arrowbefore.gif 79 17/03/2016 arrowbefore.gif 125 09/08/2016 attention.gif 209 25/05/2016 attention.gif 359 10/03/2016 attention.gif 574 08/03/2016 backward_enabled.gif 63 04/08/2016 backward_enabled.gif 78 26/03/2016
Let’s examine a second example, where a sorted list of lines contains some consecutive lines, quite *identical. In order to mark any line of these blocks, formed of identical lines, we’ll just need TWO generic regexes :
-
The regex
^(.+\R)(?=\1)
, which will mark all the lines, but the last, of each group of consecutive identical lines -
The regex
^((.+)\R)\1*\2\K\R
, which will mark the last line of each block of consecutive identical lines
Best Regards,
guy038
-
-
This posting may also be helpful to the OP; even though it is about deleting rather than copying, I think it still has some relevant info: https://notepad-plus-plus.org/community/topic/12192/remove-unmarked-lines-not-just-unbookmarked-lines