I have a list of Filepaths, each row includes the filesize and creationdate.
The Filepaths are separated by backslashes, some files in the root folder, others in sub-folders or even in sub-sub-folders.
I am trying to use RegEx in Notepad to achieve the desired results.
I merely wish to replace the backslash immediately after the root folder with a tab character.
Example:
Current:
289399 13/12/2021 ALLEN Alan - 12.05.2014 - A\File in Root Folder.JPG
67795 21/12/2021 JONES Jess - 14.09.2010 - B\SUB\File in Level 1 Sub Folder.TXT
110842 27/05/2020 SMITH Alex - 08.01.2006 - C\SUB\SUB\File in Level 2 Sub-Sub Folder.PDF
Desired:
289399 13/12/2021 ALLEN Alan - 12.05.2014 - A <Tab> File in Root Folder.JPG
67795 21/12/2021 JONES Jess - 14.09.2010 - B <Tab> SUB\File in Level 1 Sub Folder.TXT
110842 27/05/2020 SMITH Alex - 08.01.2006 - C <Tab> SUB\SUB\File in Level 2 Sub-Sub Folder.PDF
Tab separation required at Root Level ONLY
Various methods I have tried using RegEx in Notepad fail to achieve the desired result. The tab character almost always replaces the very last backslash character, not the one immediately after the root foldername.
Find:
^(.*\t.*\t.*)\\((.*)$|(.*\\.*)$|(.*\\.*\\.*)$)$
RegEx:
\1\t\2
Result:
289399 13/12/2021 ALLEN Alan - 12.05.2014 - A <Tab> File in Root Folder.JPG
67795 21/12/2021 JONES Jess - 14.09.2010 - B\SUB <Tab> File in Level 1 Sub Folder.TXT
110842 27/05/2020 SMITH Alex - 08.01.2006 - C\SUB\SUB <Tab> File in Level 2 Sub-Sub Folder.PDF
The above RegEx (and variations of this) result in only the final backslash being replaced with a Tab.
I need to replace the first backslash after the Root Foldername only to be replaced, leaving the rest intact.
Note: Some rows will not have a letter immediately before the first backslash, e.g.
289399 13/12/2021 ALLEN Alan - 12.05.2014\File in Root Folder.JPG
Please can somebody advise of a simple solution for this?
CodePudding user response:
- Ctrl H
- Find what:
^[^\\] \K\\
- Replace with:
\t
- TICK Wrap around
- SELECT Regular expression
- Replace all
Explanation:
^ # beginning of line
[^\\] # 1 or more any character that is not a backslash
\K # forget all we have seen until this position
\\ # a backslash
Replacement:
\t # a tabulation
Screenshot (before):
Screenshot (after):
CodePudding user response:
Use the find/replace feature as follows:
Find what: (- [\w.] )\\
Replace with: \1\t
⦿ Regular Expression
Replace all