http://qs321.pair.com?node_id=11113030


in reply to Re^2: wiki regex reprocessing replacement
in thread wiki regex reprocessing replacement

You're welcome.

Here are some test cases I've added since posting. I'd be very interested to hear your comments, especially as regards the "questionable" ones.

'--- tests added 16feb20 after pm#11113014 post ---', '"failing" (i.e., no transformation) tests', [ '' => '', ], [ '*' => '*', ], [ '*_/' => '*_/', ], [ ' * _ / ' => ' * _ / ', ], [ '*fail/' => '*fail/', ], [ ' * fail / ' => ' * fail / ', ], 'possibly questionable transformations', [ '__' => '<u></u>', ], [ ' __ ' => ' <u></u> ', ], [ '__ __' => '<u></u> <u></u>', ], [ ' __ __ ' => ' <u></u> <u></u> ', ], [ '____' => '<u></u><u></u>', '???' ], [ ' ____ ' => ' <u></u><u></u> ', '???' ], [ '______' => '<u></u><u></u><u></u>', '???' ], [ ' ______ ' => ' <u></u><u></u><u></u> ', '???' ], [ '________' => '<u></u><u></u><u></u><u></u>', '???' ], [ ' ________ ' => ' <u></u><u></u><u></u><u></u> ', '???' ], [ '__ __ __ __' => '<u></u> <u></u> <u></u> <u></u>', ], [ ' __ __ __ __ ' => ' <u></u> <u></u> <u></u> <u></u> ', ],
In this particular case the syntax is also meant to coexist with more verbose html tags.
There are cases where one doesn't want to have a whitespace in between neighboring tags.
Can you supply some test cases for variations, especially WRT intermixtures with standard HTML?


Give a man a fish:  <%-{-{-{-<

Replies are listed 'Best First'.
Re^4: wiki regex reprocessing replacement
by LanX (Saint) on Feb 17, 2020 at 00:55 UTC
    > especially as regards the "questionable" ones

    Yes sorry.

    I didn't want to over complicate the question, and just wrote .*? between the markup.

    Actually I'm using now something like (\S.*?(?<=\S)) to enforce at least one non-whitespace between the markers.

    The objective of the question was "How best to allow * / _ to be chained and or nested".

    The recursive approach does it already pretty well.

    And actually nesting these markups is of rather low priority in the to-do list

    > Can you supply some test cases for variations, especially WRT intermixtures with standard HTML?

    That's my project: Wikisyntax for the Monastery =)

    JS-regex is mostly compatible to Perl4 regex.

    these are some tests I use ATM

    sub is_tf { my ($in,$out,$label) = @_; is( rec( $in ) => $out => "$label: \t'$in'\t->\t'$out'" ); } sub no_tf { my ($in,$label) = @_; is_tf($in,$in,$label); } no_tf( '**' => "no letter" ); is_tf( '*A*' => '<b>A</b>' => "one letter"); is_tf( '*A B*' ,'<b>A B</b>' , "multi word"); no_tf( '* A*' , "before non-whitespace"); no_tf( '*A *' , "after non-whitespace"); no_tf( "*A\nB*" , "line break"); is_tf( '*A *B*' ,'<b>A *B</b>' , "after non-whitespace prolonged"); is_tf( '/**/' ,'<i>**</i>' , "nested no letter");

    Cheers Rolf
    (addicted to the Perl Programming Language :)
    Wikisyntax for the Monastery