Page 1 of 1

Find BBCode element

Posted: 2010-08-16 12:00:32
by GeoffRoynon
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.

Re: Find BBCode element

Posted: 2010-08-16 14:56:19
by martin
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.

Re: Find BBCode element

Posted: 2010-08-16 14:59:50
by martin
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'

Re: Find BBCode element

Posted: 2010-08-16 23:59:29
by GeoffRoynon
Thanks Martin, that works well.