Beefy Boxes and Bandwidth Generously Provided by pair Networks
There's more than one way to do things
 
PerlMonks  

Re^2: Puzzle Regex: Letter Frequency Arithmetic Sequence

by LanX (Bishop)
on Oct 20, 2017 at 15:30 UTC ( #1201760=note: print w/replies, xml ) Need Help??


in reply to Re: Puzzle Regex: Letter Frequency Arithmetic Sequence
in thread Puzzle Regex: Letter Frequency Arithmetic Sequence

You missed the one letter words like "a".

Cheers Rolf
(addicted to the Perl Programming Language and ☆☆☆☆ :)
Je suis Charlie!

  • Comment on Re^2: Puzzle Regex: Letter Frequency Arithmetic Sequence

Replies are listed 'Best First'.
Re^3: Puzzle Regex: Letter Frequency Arithmetic Sequence
by tybalt89 (Curate) on Oct 20, 2017 at 15:54 UTC

    I had done that deliberately because I considered them "uninteresting". Easily fixed.

    #!/usr/bin/perl # http://perlmonks.org/?node_id=1201500 use strict; use warnings; $| = 1; my $file = '/usr/share/dict/words'; open my $fh, '<', $file or die "$! opening $file"; while(<$fh>) { chomp; /[^a-z]/ and next; "$_\n$_" =~ /^ (?= .* (.) .* \n (?: (?:(?!\1).)* \1 ){1} (?:(?!\1).) +* $ ) (?= .{1,1} \n | .* (.) .* \n (?: (?:(?!\2).)* \2 ){2} (?:(?!\2).) +* $ ) (?= .{1,3} \n | .* (.) .* \n (?: (?:(?!\3).)* \3 ){3} (?:(?!\3).) +* $ ) (?= .{1,6} \n | .* (.) .* \n (?: (?:(?!\4).)* \4 ){4} (?:(?!\4).) +* $ ) (?= .{1,10} \n | .* (.) .* \n (?: (?:(?!\5).)* \5 ){5} (?:(?!\5).) +* $ ) (?= .{1,15} \n | .* (.) .* \n (?: (?:(?!\6).)* \6 ){6} (?:(?!\6).) +* $ ) (?= .{1,21} \n | .* (.) .* \n (?: (?:(?!\7).)* \7 ){7} (?:(?!\7).) +* $ ) (?= .{1,28} \n | .* (.) .* \n (?: (?:(?!\8).)* \8 ){8} (?:(?!\8).) +* $ ) (?= .{1,35} \n ) /x and print "$_ "; } print "\n";

    On my machine, this outputs:

    a aah acacia add aha aka all allele app arr ass assays b baa banana ba +obab bbl bedded bee bib bob bonobo boo bowwow brr bub c cocoon coo d +dad dds deadheaded deemed did doodad dud e ebb eddied eek eel eerier +eff effete egg eke ell ere err eve ewe eye f fee fesses foo g gag gee + gig goo h heeded hmm horror hubbub huh i ill inn inning j k l lee le +ssee lii lollop loo m mam mammal manana messes mom moo mum n nee need +ed non nun o odd off oho ooh opp p pap papaya pee peeped peeper pep p +epped pepper pip pippin poo pop powwow ppm ppr pup q r reefer revere +rococo s salsas see seeded senses sereneness settee shh sis sleeveles +s sqq ssh t tat tattoo tee teeter teethe tit too tot tut u usu v vii +w wedded wee weeded woo wow x xii xix xxi xxv xxviii xxxvii y z zoo
      Nice!

      (Took me a bit too understand what you are doing. :)

      Pity, without the need of lower limit ranges one could even try to generalize this with a recursive pattern.

      update
      Actually you could avoid these limits for "is string long enough" tests, by checking for a new character instead of matching (.)

      Cheers Rolf
      (addicted to the Perl Programming Language and ☆☆☆☆ :)
      Je suis Charlie!

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://1201760]
help
Chatterbox?
and all is quiet...

How do I use this? | Other CB clients
Other Users?
Others making s'mores by the fire in the courtyard of the Monastery: (8)
As of 2018-01-17 14:19 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?
    How did you see in the new year?










    Results (200 votes). Check out past polls.

    Notices?