[pmwiki-users] Re: Modified (:markup:)
Joachim Durchholz
jo at durchholz.org
Mon Mar 21 01:44:40 CST 2005
Patrick R. Michaud wrote:
> On Sun, Mar 20, 2005 at 04:36:24PM -0500, Neil Herber wrote:
>
>> I would suggest that we agree on the equal-sign-incrementing and
>> move on to other matters.
>
> I agree, but my implementation of [== ... ==] currently breaks in
> the face of text containing multiple [==]'s, so I have to either come
> up with a much better pattern or go back to the drawing board.
Would a backreference work?
\[(=*)[^=](.*?)\1\]
The (=*) captures the string of =s after the opening [ and stores them
in the $1 variable, the [^= makes sure that a non-= is between the
brackest-and-equals-signs delimiters (else we'd match stuff like [==]
and we don't want that - might be a useful markup for other purposes),
the (.*?) eats up the least number of characters before the final
pattern (so we don't take [=...=]...[=...=] as a single pattern), the \1
requests the same string as was captured in $1.
To ensure that the replacement pattern gives the right output, we'd need
to add a set of parentheses; a micro-optimization also eliminates an
unneeded $3 capture:
\[(=*)([^=](?.*?))\1\]
^ ^ ^
(Apologies if the above regexes contain errors - they are untested.)
Regards,
Jo
More information about the pmwiki-users
mailing list