Find BBCode element
Page 1 of 1

Author:  GeoffRoynon [ 2010-08-16 12:00:32 ]
Post subject:  Find BBCode element

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: [color=aaaaa]
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.

Author:  martin [ 2010-08-16 14:56:19 ]
Post subject:  Re: Find BBCode element

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:
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.

Author:  martin [ 2010-08-16 14:59:50 ]
Post subject:  Re: Find BBCode element

One additional consideration. Looking at the text:
aaa [color=red] xxx [color=blue] bbb

The existing expression you have will match:
[color=red] xxx [color=blue]

Because the ".+" expression is greedy. To make it stingy, follow the "+" with a question mark, eg:
Find and Replace '\[color=.+?\]', ' ', 'Ea'

Author:  GeoffRoynon [ 2010-08-16 23:59:29 ]
Post subject:  Re: Find BBCode element

Thanks Martin, that works well.

Page 1 of 1 All times are UTC - 8 hours
Powered by phpBB® Forum Software © phpBB Group