Using wildcard search/replace in Notepad++
Here's my problem: In a .txt file, I need to find and replace thousands of instances of syntax like this:
(see (a053007djfgspwdf))
or
(see (a053007djfgspwdf) and (a54134xsedgeg))
or
(see (a053007djfgspwdf), (a9554xsdfgsdfg) and (a54134xsedgeg))
There is a lot of variety between the beginning (see (a and the ending )) text strings. Can this be set up in Notepad++ using regex? If so, how would I do that? Thanks!
5 Answers
Sorry folks, I just find other answers complicated. (No disrespect intended towards the original posters.)
As this always shows up as the first search result, I'll add this in:
- Open the search/replace dialog (CTRL+F then the replace tab)
- Tick "Regular Expression" down the bottom
- Use .* as the wildcard
For example, I wanted to remove all instances of abp="1314", abp="1313", abp="1312" etc (basically the numbers are all different, which is why you want a wildcard to get rid of them).
In the replace dialog:
Find in what: abp=".*"
Replace with:
(You're replacing anything within those quotes with nothing to get rid of it)
Source:
1Yes it can! Notepad++ has a RegEx search mode that you can select for all of your RegEx replacement needs.
The example below is a basic replace for anything between (see (a...)) with the exception of a line break. You may need to modify the RegEx or write your own to fit your needs. Here's a great place to help you along with experimenting.
RegEx: \(see \(a.+\)\)
Matched strings:
(see (a053007djfgspwdf))
(see (a053007djfgspwdf) and (a54134xsedgeg))
(see (a053007djfgspwdf), (a9554xsdfgsdfg) and (a54134xsedgeg))Try this pattern: \(see \(a(.*)\) and make sure you have ". matches newline" unchecked and "wrap around" checked.
As some of these were too in depth for me to understand, let me show you what I did after reading all of these solutions and more to finally get a better understanding. (this is a simple approach, might not be the best)
I wanted to remove all of my figure elements on the whole web page. Figure 2.1,Figure 1.1,ect.
It was:
<p><span>2. </span>Select Memo from the toolbar<br><b>Figure 2.1</b></p>I wanted it to end up:
<p><span>2. </span>Select Memo from the toolbar</p>But each
had a different Figure number, so I used this in sublime text 2.
- ctrl H
- click the ".*" symbol on the bottom right of Sublime text 2, (regex)
- typed
<br><b>Figure.*</b> - replace with: -left blank
This replaced all of my instances with figures in it. notice I used .* where the numbers would of been. Hope this helps.
The exact regex you'd need is:
\(see \(\w+\)((, \(\w+\))*( and \(\w+\)))?\)For example:
On selecting Find All in Current Document, the result would be:
You can simply use Replace as per your necessity instead.
If you want to include the a as well in the regex, you can use:
\(see \(a\w+\)((, \(a\w+\))*( and \(a\w+\)))?\)