Regular expression Notepad++ - regex

Good Morning in my timezone
I want to replace a character that is in the beginning of each line
So i had used the following regular expression to find the text
^\d
And it works fine in finding all the characters
The problem is in the replace with
I want to replace with single quote followed by the same character found above
How can i do it ?
Thanks in advance

You may try this option:
Find:
^(?=\d)
Replace:
' <-- just a single quote
The find pattern uses a positive lookahead which asserts that the first character is a digit, but nothing is ever matched. Then, the replacement is a single quote.

You may use
Find What: ^\d
Replace With: '$0
where $0 is the backreference to the match value.

Another one would be:
Find:
^(\d)
Replace:
'\1
In this example \1 would be 1st captured group.

Related

Find and replace in N++

I have a N++ file with the following lines:
asm-java-2.0.0-lib
cib-slides-3.1.0
lib-hibernate-common-4.0.0-beta
I want to remove everything from the '-' before the numbers begin so the results look like:
asm-java
cib-slides
lib-hibernate-common
So far I've come up with [0-9]+ but that ignores the '.' and the trailing alphabets. Does anyone know a correct command for find and replace?
Ctrl+H
Find what: -\d.*$
Replace with: LEAVE EMPTY
check Wrap around
check Regular expression
UNCHECK . matches newline
Replace all
Explanation:
- # a dash
\d # a digit
.* # 0 or more any character but newline
$ # end of line
Result for given example:
asm-java
cib-slides
lib-hibernate-common
Use regex to find and replace
Find: ^(.+)-\d.*$
Replace: $1
Here's regex I used in VSCode to find and replace to get your task done:
(.*)?-\d.*
And replace with $1
Not sure about notepad++ but should get it done for you as well.

How in notepad++ find/replace text between slashes?

How to find the text between the second and fourth slashes in a path like /folder/subfolder-1/subfolder-2/subfolder-3? I’m trying to replace this with something like /folder/new-folder/subfolder-3.
The most important for me is to be able to find the part after the n-th slash.
I tried the regex /((.*?)/){3}, but it doesn’t work.
Using Match resetter \K meta-character you are able to do it in a simpler way.
Find:
/.*?/\K(.*?/){2}
Replace with:
new-folder/
One way you could to it is by using this string in the pattern to replace
(/.+?)(/.+?){2}(/\S+)
And use this one in your pattern to replace it with
$1/new-folder$3
From your string:
/folder/subfolder-1/subfolder-2/subfolder-3
(/.+?) will match /folder as $1
(/.+?){2} will match /subfolder-1/subfolder-2 as $2 (not used)
(/\S+) will match everything that isn't a space, in this case/subfolder-3 as $3
Leaving you room to insert your new-folder in-between.
How can I just mark till the slash?
Find what: (/[^/]+/)[^/]+/[^/]+
Replace with: $1new-folder
To find text between second and forth slash you can use the regex ^(/[^/]*/)([^/]*/[^/]*) then you can reference to the text between slashes with \2 when replacing the text.
To keep the text before the slashes you can enter something like \1myNewTextBetweenSlashes2and4.
In notepad++ Find by this:
(/[^/]+)(?:/[^/]+/[^/]+/)(.*)
And Replace by this:
\1\/new-folder/\2
Make sure that: .matches newline is not checked
{2} indicates 2 levels after first level will be repalced by new-folder
Find:
(\/.*?\/)(.*?\/){2}(.*)
Replace:
$1new-folder/$3
Demo: https://regex101.com/r/XIA3IN/3

Notepad++ Regex - Find multiple characters and replace them with one character

I have a file with +20K lines and some strings have this structure:
,"/d/s/aaa.jpg","/e/_/bbb.jpg","/_/2/bbb.jpg" ....
and I want to replace them with:
,"/aaa.jpg", "/bbb.jpg","/bbb.jpg" ...
Can some one provide me a regex expression that will find those 5 leading characters and replace them with "/"?
Thank You in advance.
Use the following:
Find what: /[^/]+/[^/]+(/[^/]+\.jpg)
Replace with: $1
Edited:
The following:
\"\/[^/]+\/[^/]+\/
will match the "/d/s/ or "/e/_/ part of a string. You can test it here: http://regexpal.com/
Make sure to replace it with:
"/
to do more you would need capture groups (i.e. capturing some parts of the regex to reuse that in the substitution or manipulate it somehow)

NOTEPAD++ REGEX How do I replace and remove a whitespace from $0

I'm using this regex:
\s[0-9]+ thd
It finds what I want perfectly. I want to remove the white space at the beginning. What should I put in the replace field?
Change the search text to \s([0-9]+ thd) and then the replacement id \1 or $1 depending on the type of regex.
Find:
\s([0-9]+ thd)
Replace:
$1
So if you using Notepad++ everything in parenthesis refers to section build from \ and number in Replace box.
Look at example:
Find: (\s)([0-9]+ thd)
Replace: \1\2
This give you back first \1 and second \2 section - nothing unusual, but when you live only \2 after replace you'll get only part found by ([0-9]+ thd)
Going further if you split your expression to (\s)([0-9]+)(\s)(thd) then you'll get 4 parts
This parts will be represented by \1\2\3\4 and if you need add something more to your output line:
for example added_text_before\1added_text_after in Replace will result merging added text and section found - practice because there is no hidden magic out there.
Remember that using regex in Notepad++ have some limitations (to long expression aren't read).

Regex using Notepad++ to add space before a capital letter

I have looked around and found good answers but none work with notepad++, most are for java and php. I have found the search strings below but obviously I'm a noob with regex as i don't know what open/close tags are proper in notepad++.
I would like to add a space before each capital letter.
Example:
StackOverflowKegger
becomes
Stack Overflow Kegger
This is what i have found.
Find: [a-z]+[A-Z]+
Replace: $1 (there is a space before the $)
Find:
(?<!^)((?<![:upper:])[:upper:]|[:upper:](?![:upper:]))
("(\\p{Ll})(\\p{Lu})","$1 $2")
(?!^)(?=[A-Z])
Any help would be appreciated.
Search string: (.)([A-Z])
Replacement: \1 \2
This doesn't insert spaces before capitals that are the first letter on their line.
In Notepad++, do a search-n-Replace (ctrl+h), in 'find what' input '([a-z])([A-Z])' without single quotes. in 'Replace with' input '\1 \2' without quotes.
Select radio button 'Regular Expression' and make sure you Check 'Match Case' checkbox. Now find next and keep replacing. it will convert camel or Pascal case strings into words with a space before every capital letter except the first.
Hope it is helpful. I just used it with one of my tasks.
Find: ^([A-Z])
Replace: \1
this will add a space to the first uppercase character in notepad++
Make sure you put the space before the \1 in the replace section.
WABET : <-from
WABET : <-to
Find what: .\K([A-Z])
Replace with: $1 a space before $1
Note!!!!!! Must to check match-case see in attached photo.
If you can live with a space before the first word, then this solution worked for me.
I used the following with the Regular Expression radio button checked.:
Find what: ([A-Z])
Replace With: \1
Note the leading space before the \1 in the replace