Notepad++ how to copy the text (only) which matches the regex expression (not the whole line)

6,924

I also couldn't find a way to select and copy every marked match. I'm a fairly novice NP++ user though, so maybe someone else knows how to do this.

However, you could instead search for everything you don't want to copy and replace it with nothing. This will leave you with only what you want, so you can copy it or use it as you like. Then just be sure to undo, save the result as a new file, or don't save at all in order to keep your original data intact.

Based on your comments, you're trying to grab hashtags from some text. You can use the following regex pattern to match everything but hashtags:

(?<!#)\b[^#]+

Replace all with nothing or a space.

Explanation of pattern:

\b[^#]+ maximally matches text, starting from a word boundary, that does not include a pound sign.
(?<!#) is a negative look-behind for the pound sign. This prevents matching any text immediately preceded by a pound sign.

This should leave nothing but hashtags behind. [^#]+ seems to be matching newline characters as well, so this will leave all your hashtags on a single line.

Share:
6,924

Related videos on Youtube

JinSnow
Author by

JinSnow

Updated on September 18, 2022

Comments

  • JinSnow
    JinSnow over 1 year

    I am looking for a simple way to copy into the clipboard all the "marks" in notepad++.

    I found that I could copy the whole line that match the regex using the bookmark option. But I'm looking for a way to copy only the marked text (or the text that matches the regex expression).

    The ideal would be to past the output separated by newline (or custom separator).

    I looked into TxtFX option without luck. I looked into the plugin/python script lib, is there inside any of those code that could copy the marked text into the clipboard ?

    In brief, is there a way to makes it -in one shot- using notepad++?

    (I've seen I could do it using SynWrite -using command "Extract strings"- but using notepad++ would be better).

    • Ƭᴇcʜιᴇ007
      Ƭᴇcʜιᴇ007 over 9 years
      As-is, your question is a little confusing, what do you mean by "Marks"? Can you provide some example data, an example result and the RegEx you've tried using? Why not just perform a RegEx Find and then Ctrl-C to copy the found, matching text? Do you know about RegEx "capture groups" for find and replace?
    • JinSnow
      JinSnow over 9 years
      after entering my Regex '(?<=#)\w+' I'm using the "mark" tab on the ctrl+F windows in notepad++.
    • JinSnow
      JinSnow over 9 years
      Why not just perform a RegEx Find and then Ctrl-C to copy the found, matching text? Unfortunately it doesn't work. What am I doing wrong : I enter the the regex in the find windows, then "find all in the current document" then CTRL+C?
    • Excellll
      Excellll over 9 years
      Could you provide some sample text? I ask because I think one option may be "inverting" your regex to catch everything but what you want copied. Then you could replace the match to leave yourself with only what you want.
    • JinSnow
      JinSnow over 9 years
      I'm just retrieving hashtags (using: (?<=#)\w+) from a text that look like that (but I'm also looking for a simple way to copy-past the marks that would work for any regex). My text look like: blablala djkjd kdls, #study, international, #organization, blablala djkjd kdls, shjfdtudy, ghdf, hjfdorgan, blablala #djkjd kdls, #hgfdjf blablala #djkjd kdls, #study, hjs, #social_organization
    • JinSnow
      JinSnow over 9 years
      your solution would be more than appreciated! I'm just surprise I could not "just" copy past the "marks"
  • JinSnow
    JinSnow over 9 years
    Thank you very much Excelll your trick and your great explainations! It does works perfectly! I'll let the question open to find a way that could work in all case (something like "copy all the regex results").