Some time ago Brian Barker provided a brilliant formula for finding all text between less-than and greater-than signs, namely
<[^>]*>
I've been trying to adapt it to finding text within brackets [thus], but without success. I know that brackets as such, as distinct from regular expressions, are identified as \[ and \]; so the formula I've come up with is
\[[^>]*\]
Unfortunately there are two things wrong with this: (1) it finds all text until a later closing bracket (seemingly the last one in the same paragraph) but not necessarily the immediately following one, ...
That central greater-than sign also needs to become a close bracket:
\[[^]]*\]
... and (2) the selection includes the brackets themselves, whereas I only want the text that they enclose. Am I attempting the impossible?
Yes and no. I don't see how you can match something that then doesn't include parts of the pattern. (Others may know better.) But there are things you can do:
o If you want to replace what is contained in the brackets but not the brackets themselves, you can reinsert them in the "Replace with" string, as "[something-else]" (no quotes).
o You can mark the brackets and their contents separately - using parentheses - and then use the parts in the replacement. Use
(\[)[^]]*(\])
and then "$1something-else$2" (no quotes) in the replacement. "$1" refers to the first parenthesised part and "$2" to the second - in this case the brackets themselves.
o Another technique would be to match the entire string, including the brackets, do what you want with that, and then perform another Find & Replace to correct the unwanted effect on the brackets. One idea might be to include additional brackets in the replacement, so that the result would be "[[something-else]]". Then it would be a simple task to search for those double brackets and do whatever was required.
It's difficult to be more precise without knowing exactly what you are trying to achieve.
I trust this helps.
Brian Barker