Backreference format in Winmerge regex - regex

I'm trying to search-and-replace wit a regex in a file in Winmerge, however I can't find the right format for making a backreference.
For example I search (\w+), and I tried to replace by "$1", "\1", "\\1", "${1}", but neither of those works.
Any idea?
Thanks in advance,

format is \1 and you need winmerge 2.15.2
https://sourceforge.net/p/winmerge/bugs/2172/

Winmerge does not support replacing with regex. You can only use regex as find filters, which are facilitated with PCRE.

Related

RegEx for string replacement

I am a newbie in regex. I want to write a regex for string replacement which can be used in NotePad++ or any other editors which support regex. I want to replace the one in bold with nothing. Please see the below example.
0d12345678901234p+123456789012.0AA
12345678901234.0AA
Is this the only possible pattern in your entire file? if so you can use ^(0d)|p\+[0-9]* pattern to search and batch replace it with nothing.

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 \\\\)

Perl Extended Regular Expressions - match with multiple question marks inside

I have got a weird thing to solve in perl using regular expressions.
Consider the strings -
abcdef000000123
blaDeF002500456
wefdEF120045423
All of these strings are matching with the below regular expression when I tried in C with pcre library support :
???[dD][eE][fF][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]
But I'm unable to achieve the same in perl code. I'm getting some weird errors.
Please help with the piece of perl code with which these two things match.
Thanks in advance...
? is called quantifier that makes preceding pattern or group an optional match. Independently ? doesn't make any sense in regex and you are getting an error like: Quantifier follows nothing in regex.
Following regex should work for you in perl:
...[dD][eE][fF][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]
OR even more concise regex:
.{3}[dD][eE][fF][0-9]{9}
Each dot means match any character.
PS: You probably are getting confused by shell's glob vs regex.
That looks more like a file system regex than a PCRE. In Perl, the ? is a quantifier, not a wild card. You may want to replace them with . to get the same results in anything Perl compatible.
I might use ...[dD][eE][fF][0-9]{9} or even replace the [0-9] with \d.
qr/[A-z]{3}def[0-9]{9}/i
should be the Perl Regex object used to validate the mentioned strings.
Regards

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

Regex to replace document.all

A simple (I hope) regex question:
I have several pages where I need to replace every document.all['string'] with document.getElementById('string').
I can use Visual Studio or Notepad++ to replace regular expressions, I just need the right ones.
Thanks for any assistance,
Guy
For notepad++:
search:
document\.all\[\'(.*)\'\]
replace with:
document.getElementById('\1')
Replace
document\.all\['(.*?)'\]
by
document.getElementById('$1')
The parentheses are used to identify a group. The $1 is used to print the value of the first group. The backslashes are used to escape special characters in regex. For the remnant it's pretty trivial.
Hope this helps.
Search for:
document\.all\['([^']+)'\]
Replace with:
document.getElementById('\1')