diff options
| author | Simon Proctor <simon.proctor@gmail.com> | 2021-02-08 12:23:16 +0000 |
|---|---|---|
| committer | Simon Proctor <simon.proctor@gmail.com> | 2021-02-08 12:23:16 +0000 |
| commit | 386d1f3ed654a7928cd7173bcf07e5e392a9fbcf (patch) | |
| tree | 260fc745311c1abf927d9f6076acd6dff7842338 /challenge-099 | |
| parent | 323110b0d053e2067a3cae6db62bc209f869bc57 (diff) | |
| download | perlweeklychallenge-club-386d1f3ed654a7928cd7173bcf07e5e392a9fbcf.tar.gz perlweeklychallenge-club-386d1f3ed654a7928cd7173bcf07e5e392a9fbcf.tar.bz2 perlweeklychallenge-club-386d1f3ed654a7928cd7173bcf07e5e392a9fbcf.zip | |
Challenge 1 done
Diffstat (limited to 'challenge-099')
| -rw-r--r-- | challenge-099/simon-proctor/raku/ch-1.raku | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/challenge-099/simon-proctor/raku/ch-1.raku b/challenge-099/simon-proctor/raku/ch-1.raku new file mode 100644 index 0000000000..5c5b47b161 --- /dev/null +++ b/challenge-099/simon-proctor/raku/ch-1.raku @@ -0,0 +1,28 @@ +#!/usr/bin/env raku + +use v6; + +#| Given a string and a simple pattern see if the string matches the pattern +multi sub MAIN( + Str $S, #= String to check + Str $P, #={ Pattern to match : +? - Matches a single character : +* - Matches any number of characters +} +) { + my $regex = generate-regex( $P ); + say $S.match($regex) ?? 1 !! 0; +} + +sub generate-regex( $P ) { + my @chars = [ '^', |$P.comb.map( + -> $c { + given $c { + when "*" { ".*" }; + when "?" { "." }; + default { "'$c'" }; + } + } + ), '$' ]; + return rx/<{@chars.join(" ")}>/; +} |
