Find BBCode element

Get help using and writing Nisus Writer Pro macros.
Post Reply
User avatar
GeoffRoynon
Posts: 44
Joined: 2004-04-26 10:20:33
Location: London, UK

Find BBCode element

Post by GeoffRoynon » 2010-08-16 12:00:32

I haven't used Nisus macro language for a couple of years so have forgotten all the complicated stuff!

I want to find the following in a Nisus document and replace it with a space:
where 'aaaaa' is the name of a color which could be different each time I run the macro.
I'm converting documents containing BBCodes into HTML codes and don't need the "color" option currently.

I've tried something like: /[color=.+\]
but it doesn't work.
Can't find any reasonable examples anywhere.
Geoff Roynon
Mac Pro 2.66MHz, MacOS X 10.8.1
NW Pro 2.0.4

User avatar
martin
Official Nisus Person
Posts: 4287
Joined: 2002-07-11 17:14:10
Location: San Diego, CA
Contact:

Re: Find BBCode element

Post by martin » 2010-08-16 14:56:19

You've almost got it right. In the expression you've given, you want to use a backslash at the start, instead of the forward slash you have there. Putting it into a macro file is easy enough:

Code: Select all

Find and Replace '\[color=.+\]', ' ', 'Ea'
You can see the first argument is the expression, followed by what you want to replace it with (a single space). The final argument is the options string, "E" for PowerFind Pro, and "a" for replace all.

Oh, one tip: I used single quotes for the expression string. That's almost always better than using double-quotes, which do extra pre-processing (interpolation) and would make your expression mean something different.

User avatar
martin
Official Nisus Person
Posts: 4287
Joined: 2002-07-11 17:14:10
Location: San Diego, CA
Contact:

Re: Find BBCode element

Post by martin » 2010-08-16 14:59:50

One additional consideration. Looking at the text:
aaa xxx bbb

The existing expression you have will match:
xxx

Because the ".+" expression is greedy. To make it stingy, follow the "+" with a question mark, eg:

Code: Select all

Find and Replace '\[color=.+?\]', ' ', 'Ea'

User avatar
GeoffRoynon
Posts: 44
Joined: 2004-04-26 10:20:33
Location: London, UK

Re: Find BBCode element

Post by GeoffRoynon » 2010-08-16 23:59:29

Thanks Martin, that works well.
Geoff Roynon
Mac Pro 2.66MHz, MacOS X 10.8.1
NW Pro 2.0.4

Post Reply