sub contains ( Str $chars, Str $_ ) {
  m:g/<{$chars.comb}>+/
};

This will return all the sets of matching strings but it is doing runtime
evaluation of your character string so it's a bit slow.

On Sun, 1 Sep 2019 at 04:59, Paul Procacci <pproca...@gmail.com> wrote:

> I'm not entirely sure if this is the correct answer, but if you define
> your own custom character class
> with a 'regex' object, you can use that in the grouping.
>
> sub matching_chars(Str $chars_to_match, Str $_) {
>     my regex x { $chars_to_match ** 1 };
>     m/<[<x>]>/;
> }
>
> The above worked for me in the very small testing I did.
>
> ~Paul
>
> On Sat, Aug 31, 2019 at 9:54 PM yary <not....@gmail.com> wrote:
>
>> I found something easy in Perl 5 that's puzzling me in Perl 6- specifying
>> a character class via a variable.
>>
>> Perl 5:
>> sub matching_chars {
>>   (my $chars_to_match, local $_) = @_;
>>   /([$chars_to_match]+)/
>> }
>>
>> say matching_chars('24680', '19584203'); # says 8420
>> say matching_chars('+\/\]\[', 'Apple ][+//e'); # says ][+//
>>
>> Perl 6:
>> sub matching_chars(Str $chars_to_match, Str $_) {
>>     # warnings, treats as string not variable
>>     m/<[$chars_to_match]>/;
>> }
>>
>> How do I get Perl 6 to interpret a variable in the contents of a
>> character class?
>> From http://docs.perl6.org/language/regexes#Regex_interpolation I'd
>> think that  Rakudo would use the literal contents of $chars_to_match,
>> instead it's using the literal chars "$ c h a r s _ t o _ m a t c h" and
>> warning about repeated c, underscore, etc.
>>
>> -y
>>
>
>
> --
> __________________
>
> :(){ :|:& };:
>


-- 
Simon Proctor
Cognoscite aliquid novum cotidie

http://www.khanate.co.uk/

Reply via email to