http://www.perlmonks.org?node_id=1173600


in reply to Regular expression to check for qwerty sequence in a password

Hi brad,

You may want to be a bit more specific in your definition of sequences. From what you've said it isn't clear what you mean. for e.g. would the sequence fdsa be acceptable? What about Asdf or asDf?

Either way; if I were to divine what you're trying to accomplish, i.e. to match a string of at least three chars that does NOT contain a multi-char sequence like "asd" or "wer" - I would tweak your if conditional and reg exp to something like this:

if (length($password) > 2 && ($password =~ m/(?:^(?!(asd)|(wer)))/))

Cheers,
Shadowsong

Replies are listed 'Best First'.
Re^2: Regular expression to check for qwerty sequence in a password
by bradcathey (Prior) on Oct 09, 2016 at 17:44 UTC

    Shadowsong

    Sorry for the confusion. I'm trying to test passwords made by just rolling all four fingers on the keyboard, hitting immediately adjacent letters, e.g., "asdf." They must be next to each other: so "asdg" wouldn't match. Case is not necessarily a consideration. Does that help?

    I have been a little surprised in reading the replies to see there is no one magical regex.

    —Brad
    "The important work of moving the world forward does not wait to be done by perfect men." George Eliot
      I have been a little surprised in reading the replies to see there is no one magical regex.

      tybalt89's single regex given here not sufficiently magical?!? You're a hard monk to please!

      ... passwords made by ... hitting immediately adjacent letters, e.g., "asdf." They must be next to each other: so "asdg" wouldn't match.

      tybalt89's regex can easily be modified so that  'asd' 'wert' 'vbnm' etc. are rejected and  'asdx' 'xasd' 'xasdx' etc. accepted. This is left as a penitential exercise for a very demanding monk.


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