I am looking to match a 15 digit number (as part of a larger regex string). Right now, I have
\d\d\d\d\d\d\d\d\d\d\d\d\d\d\d
but I feel like there must be a cleaner way to do this.
The ‹ ^ › and ‹ $ › anchors ensure that the regex matches the entire subject string; otherwise, it could match 10 characters within longer text. The ‹ [A-Z] › character class matches any single uppercase character from A to Z, and the interval quantifier ‹ {1,10} › repeats the character class from 1 to 10 times.
match(/(\d{5})/g);
Occurrence Indicators (or Repetition Operators): +: one or more ( 1+ ), e.g., [0-9]+ matches one or more digits such as '123' , '000' . *: zero or more ( 0+ ), e.g., [0-9]* matches zero or more digits. It accepts all those in [0-9]+ plus the empty string.
$ means "Match the end of the string" (the position after the last character in the string).
You can generally do ranges as follows:
\d{4,7}
which means a minimum of 4 and maximum of 7 digits. For your particular case, you can use the one-argument variant, \d{15}
.
Both of these forms are supported in Python's regular expressions - look for the text {m,n}
at that link.
And keep in mind that \d{15}
will match fifteen digits anywhere in the line, including a 400-digit number. If you want to ensure it only has the fifteen, you use something like:
^\d{15}$
which uses the start and end anchors, or
^\D*\d{15}\D*$
which allows arbitrary non-digits on either side.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With