Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Notepad++ and regex: how to UPPERCASE specific part of a string / find / replace

i've been trying for some time now to get this working, but i can't find a solution to this task myself - ok, i'm very new to regex-use but quite interested to learn, hope anybody has some brainfood for me...

my text-string is like this - without the numbers...

Word1 Word2 word3 (some words in brackets)
Word1 (some words in brackets)
word1, Word2 (some words in brackets)

means: an indefinite number of words (sometimes just one, maybe 2 to 4, sometimes separated by commas) followed by a string in round brackets (the value in the brackets should not change)

what i'm looking for is two different regexes - to use with FIND and REPLACE in notepad++
1. only uppercasing of all the words before the brackets
2. like no.1 + adding html-tags)

should look like: 1:

WORD1 WORD2 WORD3 (some words in brackets)
WORD1 (some words in brackets)
WORD1, WORD2 (some words in brackets)

and 2:

EDIT: 2nd html-tag was at the wrong position, now right!

%htmltag%WORD1 WORD2 WORD3%/htmltag% (some words in brackets)
%htmltag%WORD1%/htmltag% (some words in brackets)
%htmltag%WORD1, WORD2%/htmltag% (some words in brackets)

hope somebody could help me - thax a lot beforhand!

like image 245
zen or the art of regex Avatar asked Aug 20 '14 21:08

zen or the art of regex


People also ask

How do you replace RegEx in Notepad?

A normal “Find and Replace” can't do that, but it's possible with “Regular Expressions”. In Notepad++ press Ctr+H to open the “Find and Replace” window. Under Search Mode: choose “Regular expression” and then check the “matches newline” checkbox.


2 Answers

For part 1 you can use

Find:  ^(.*?)(?=\()
Replace \U\1

Make sure regex is selected

for part 2

Find: ^(.*?)(\(.*?\))
Replace:%htmltag%\1%/htmltag%\2

which takes

WORD1 WORD2 WORD3 (some words in brackets)
WORD1 (some words in brackets)
WORD1, WORD2 (some words in brackets)

and converts it to

%htmltag%WORD1 WORD2 WORD3 %/htmltag%(some words in brackets)
%htmltag%WORD1 %/htmltag%(some words in brackets)
%htmltag%WORD1, WORD2 %/htmltag%(some words in brackets)
like image 91
Keith Nicholas Avatar answered Oct 12 '22 23:10

Keith Nicholas


Scenario 1: generate uppercase for matches on Notepad++

You can use a regex like this:

\(.*?\)|(\w+)

Working demo

Then on your Find/Replace dialog you can put \U\1 on Replace with. So, if you go over Find Next you can replace the string to generate the uppercase output.

enter image description here

Scenario 2: concatenate tags on each line

You can use this regex:

(.+?)\[

Working demo

enter image description here

like image 26
Federico Piazza Avatar answered Oct 13 '22 00:10

Federico Piazza