Copy link to clipboard
Copied
I am trying to write a regex expression to match a string that is between 6 and 20 characters long, has at least 2 digits that do not have to be consecutive, and any number of alphabetic characters that do not have to be consecutive. All non-case sensitive. I've gotten this far, but it's still not working:
^(?=\D*\d{2,}).{6,20}$
Should match "abc3def1", but it doesn't because the digits aren't consecutive even though there are two of them. This does match: "abc34def1".
Please help!
Copy link to clipboard
Copied
Is this a class project?
Are you limited to a single expression? If not, while it can be done, I would prefer to break it up into two expressions to make it easier for others and yourself to support in the future. Test for your 6-20 characters first and then pull out the numbers and check for 2+.
Copy link to clipboard
Copied
Yes, a class project, so it all has to happen together unfortunately. Thank you for any help!
Copy link to clipboard
Copied
Ok. Figure it out. You're learning. Googling for a quick answer or asking someone else to do your work might get you an easy A in the short term, but it'll take you much longer to become a programmer -- assuming that is your goal.