Replacing rgb from multiple lines with a one line version - regex

I want to convert:
<r>240</r>
<g>240</g>
<b>240</b>
to:
rgb="240,240,240"
using Notepad++. I've tried
<r>(\d+)</r>$<g>(\d+)</g>$<b>(\d+)</b>
but it didn't work. I have about 20+ files containing multiple occurrences of this and would appreciate any help I can get. Can someone explain what I'm doing wrong please?

Notepad++ won't do a multiline regex. You first have to replace all of the newlines in the file. You can then do a regex replace with
regex: <r>(\d+)</r><g>(\d+)</g><b>(\d+)</b>
replace: rgb="\1,\2,\3"\r\n
Or you can break it up into more steps and do each line individually.
regex: <r>(\d+)</r>
replace: rgb="\1,
then
regex: <g>(\d+)</g>
replace: \1,
etc...

I just tested this on my system, I highlighted the tags then did search->Replace make sure you have checked Match Whole Word Only and Wrap around. worked for me replacing the text in multiple files.

Related

How to regex replace all characters of specific type in lines that have a specific word

There is a multiline text, in which there are specific lines that i'm interested in indicated by specific words. For example i am interested in the lines that have ".jpg" in them.
I'm trying to use a lookahead:
(?=\.jpg)
In these lines i would like to delete specific characters, for example all matches of "_"
Sample input:
https://somewebpage/stuff1_stuff2_stuff3.jpg
Desired output:
https://somewebpage/stuff1stuff2stuff3.jpg
I'm trying to write this regex for latest notepad++
My problem is that i can't seem to properly combine the positive lookahead with my regex recursively
([^_]*)(_?)
Any help is appreciated.
[_-](?=.*\.jpg) worked for me. replace with empty string to remove the characters or just do a find. you can expand your character list of course, but I think this covers you.

Vim Regex - How to invert a regex which matches multiple lines?

My goal is the regex to match everything but
the multi-line matches from the original regex.
This is the regex which I'm trying to invert:
\vselect\_.{-};
It matches correctly on the bellow sample code.
The sql statements are included and not the capitalized text.
THIS TEXT IS WHAT I WANT TO
MATCH ONCE THE ABOVE
REGEX IS CORRECTLY INVERTED.
select *
from foo
where bar;
THIS TEXT IS WHAT I WANT TO
MATCH ONCE THE ABOVE
REGEX IS CORRECTLY INVERTED.
select *
from bar
where foo;
THIS TEXT IS WHAT I WANT TO
MATCH ONCE THE ABOVE
REGEX IS CORRECTLY INVERTED.
Following the vim documentation on how to do
invert (negate) a regex, this is what I come up with:
\v^(select\_.{-};)#!.*
This regex matches on everything but on the first lines
from the sql statements. I want all lines from the
sql statements to be excluded and not just the first lines.
I also tried not to use the \v very magic directive and
escaped everything, but no luck, getting the same result.
What am I doing wrong?
Also if anyone can think of another way to accomplish what I'm trying to do would be great, the answer does not have to follow the way I'm trying it.
After thinking it over, I think I got what you meant...
This line should work for you:
\v;\n\n\zs\_.{-}\ze\n\_^select
Update according to the comment:
And this vimregex works if you have leading/ending TEXT blocks:
\v(;\n\n\zs\_.{-}|%^(select)#!\_.{-})\ze(\n\_^select|\n?%$)

Simple regex: turn $text$ to \(text\) in Sublime Text

In my work I have a very repetitive task, and I would believe that regex is a fast solution for it, though, my knowledge of regex is very sparse.
What I want to do is to in a txt-file find all occurences of
$text$
and replace them with
\\( text \\)
where text is LaTeX-code, so it can contain alphanumeric as well as other characters.
I plan to do this in Sublime Text, as it has a built in and convenient regex engine. Can anyone help?
Regex:
\$([^$]*)\$
REplace With:
\\\\( \1 \\\\)

Regex substitution with Notepad++

I have a text file with several lines like these ones:
cd_cod_bus
nm_number_ex
cd_goal
And I want to get rid of the - and uppercase the following character using Notepad++ (I can also use other tool but if it doesn't get the problem more troublesome).
So I tried to get the characters with the following regex (?<=_)\w and replace it using \U\1\E\2 for the uppercasing trick but here is where my problems came. I think the regex is OK but once I click replace all I get this result:
cd_od_us
nm_umber_x
cd_oal
as you can see it is only deleting the match.
Do you know where the problem is?
Thanks.
The search regex has no capture groups, i.e. the \1 and \2 references in the replacement do not refer to anything.
Try this instead:
Search: _(\w)
Replace \U\1\E
There you have a capture group in the search part (the parenthesis around the \w) and the \1 in the replacement refers back to what was captured.
replace
_(.)
with
\U$1
will give you:
cdCodBus
nmNumberEx
cdGoal
and for your
I can also use other tool but if it doesn't get the problem more troublesome
I suggest you try vim.
Try this,
_(\w)
and replace with
\U\1
here's a screenshot

Sublime text regex find and replace

In sublime text, I need to replace all instances of:
rs('???????')
with
$rs['??????']
(keeping the ??????? part the same). I'm a regex virgin and I've only got as far as locating the regex button on the find and replace panel.
How is this possible.
Find regex:
rs\('(.*?)'\)
Replace:
$rs['$1']
Beware that this will expect anything inside the quotes; if it isn't what you need, please tell me :)