Search code examples
notepad++

Deleting Everything except Strings that Contain Certain Phrases


I have a list of many email addresses. Formatted similarly as follows:

Business Name 01    email01@business01.com; email02@business01.com; email03@business01.com; email04@business01.com; email05@business01.com;
Business Name 02    email01@business02.com; email02@business02.com; email03@business02.com; email04@business02.com; email05@business02.com;
Business Name 03    email01@business03.com; email02@business03.com; email03@business03.com; email04@business03.com; email05@business03.com;

I am looking to delete everything except emails that begin with 'email02' and 'email04'. So the list should look like:

Business Name 01    email02@business01.com; email04@business01.com;
Business Name 02    email02@business02.com; email04@business02.com;
Business Name 03    email02@business03.com; email04@business03.com;

Struggling with this one. Any ideas?


Solution

    • Ctrl+H
    • Find what: (?<=\h)(?!email0[24])\S+@\S+
    • Replace with: LEAVE EMPTY
    • TICK Wrap around
    • SELECT Regular expression
    • Replace all

    Explanation:

    (?<=\h)             # positive lookbehind, make sure we have space before
    (?!email0[24])      # negative lookahead, make sure we aven't email02 or email04 after
    \S+                 # 1 or more on space
    @                   # @
    \S+                 # 1 or more on space
    

    Screenshot (before):

    enter image description here

    Screenshot (after):

    enter image description here