I have a huge file in this layout:
world12345:Betaalpha
world12344:alphabeta
world12343:ZetaBeta
world12342:!betatheta
I need to convert the first lowercase letter after the ":" to uppercase and the first uppercase letter to lowercase. I've tried using notepad++ and emeditor, but I'm not that experienced with regex.
This is how I want it to become after (regex?)
world12345:betaalpha
world12344:Alphabeta
world12343:zetaBeta
world12342:!betatheta (unchanged, as the first char is a special char)
I have tried searching the web for a regex in npp+, but to no avail. Unfortunately, I'm not a scripter so I can't write one myself.
Thanks in advance!
Thanks to this answer, I was able to find a solution to your problem after initially thinking it wasn't possible.
The way to do this in Notepad++ is to use the following options:
^([^:]+:)(([A-Z])|([a-z]))([^:]+)$
$1\L$3\E\U$4\E$5
Here's a GIF of this in action:
The breakdown of the Find what field:
^
at the front of the Regular Expression represents the beginning of a line and $
at the end represents the end of a line. This prevents it from being lazy or wrapping to the next line.([^:]+:)
represents the characters at the beginning of the line, allowing all characters except :
. This is group $1
(([A-Z])|([a-z]))
represents the first character after the :
. If there is anything other than an upper or lowercase letter, it will skip the line.
$2
will be the first character, regardless of uppercase or lowercase. We'll ignore this in our replacement.$3
will be the first character if it is uppercase, otherwise $3
will be empty.$4
will be the first character if it is lowercase, otherwise $4
will be empty.([^:]+)
represents the characters at the end of the line, allowing all characters except :
. This is group $5
.The breakdown of the Replace with field:
$1
will be the first group as described above\L$3\E
will convert group $3
as described above to lowercase.\U$4\E' will convert group
$4` as described above to uppercase.$5
will be the last group as described above\L
and \U
stand for "beginning converting to lowercase" or "uppercase," respectively. \E
stands for "stop converting." Since only one out of $3
or $4
will contain the first character (the other will be blank), this converts only in the case we want.