Find and replace notepad++ with wildcards

1

3

I've read about 15 tutorials on regular expression however I'm clearly not getting as I've been unable to tailor it to my problem.

I have one set of code which would be found in many different documents. There may be variants of these with different content between the two anchor tags, but here is one variant (the others are all of similar form).

[anchor=ad1][img]http://i.imgur.com/48rwaraw.png[/img] 
                                 [URL=http://goo.gl/Ii3WNz][img]http://i.imgur.com/rBbf7nM.png[/img][/URL]
                                                 [size=7pt]Advertised sites are not endorsed and may be unsafe, untrustworthy, or illegal in your jurisdiction. [url=http://goo.gl/aw52j52]Advertise here.[/url][/size]
[img]http://i.imgur.com/48rwaraw.png[/img][anchor=ad1end]

I want to be able to replace everything between the anchor tags, ie where my * is here:

[anchor=ad1]*[anchor=ad1end]

The replacement would include similar characters to the original, if that makes a difference. I just can't seem to get the regular expression stuff to find the correct string, nevermind replace it with another. Thanks for the help.

Edit: Using ToolBucket to use multiline

Adam

Posted 2015-02-19T11:45:28.887

Reputation: 21

1How to use regular expressions in Notepad++ (tutorial) – DavidPostill – 2015-02-19T12:43:10.700

1As I said, I've read about 15 of these and it doesn't help me. When I follow what appear to be the rules, I get unexpected results which aren't close. – Adam – 2015-02-19T13:01:36.413

Have a look at this solution: http://superuser.com/a/482293/300393 It's somewhat related, but does not solve Your problem completely.

– Dmytro Dzyubak – 2015-02-19T13:20:56.997

You should have stated in your question, what you'd tried, and what was confusing you. – barlop – 2017-01-04T11:51:18.737

Answers

3

Find and Replace multiline string of text between tags

Solution #1

Use the following regex in Find what: \[anchor=ad1\](.*?)\[anchor=ad1end\],
Replace with: [anchor=ad1]replace[anchor=ad1end]
and select Regular expression and [x] . matches newline

Notepad++ find and replace regex example

Sample data for testing:

[anchor=ad1]some multiline string of text
   that should be replaced[anchor=ad1end]
[anchor=ad1][img]http://i.imgur.com/some_image.png[/img]
   another one multiline string of text
   that should be replaced[anchor=ad1end]
...

Solution #2

A little more advanced solution. This requires Notepad++ v6.0 or above.

Find what: (?<=\[anchor=ad1\]).*?(?=\[anchor=ad1end\])
Replace with: replace
select Regular expression and [x] . matches newline
Important Note: Replace button is NOT working in Notepad++ v6.1.6, but the Replace All works just fine.

enter image description here

Dmytro Dzyubak

Posted 2015-02-19T11:45:28.887

Reputation: 210

1Perfect, thanks. I was really close to this, I think I just had one character different yet it totally ruined it. – Adam – 2015-02-19T14:10:33.877

@Adam what did you have? – barlop – 2017-01-04T11:50:50.460

-1

You can include the beginning and ending tags into your search query. Then use RegEx to capture everything in between with the .*

[anchor=ad1].*[anchor=ad1end]

The key is to ensure you check ". matches newline". See screenshot below.

Screenshot of Notepad++ showing regex

Theo

Posted 2015-02-19T11:45:28.887

Reputation: 1 492

1This does not give me the expected result, instead it finds all results after the opening [ character, and goes on to find other varients (ad2 etc) all the way until the character before the final ] at anchor=ad3. – Adam – 2015-02-19T13:00:31.503