This question already has an answer here:
Learning Regular Expressions [closed]
(1 answer)
Closed 5 months ago.
I am absolutely clueless when it comes to Regex strings. I am trying to create a custom validator on a model using [RegularExpression("myValidator")] How can I create a regex expression to validate the following formats
######-##
######-#
where # is a number. Could someone help me out?
Thanks!
\d means digit.
{N} means previous symbol repeated N times
so, basically you want:
\d{6}-\d{2}
which would match 6 digits, a dash, and 2 more digits.
You can also do:
\d{6}-\d{1,2}
which would match 6 digits, a dash, and then 1 or 2 more digits, and therefore work for either format you described.
Related
This question already has answers here:
Regex to match at least 2 digits, 2 letters in any order in a string
(4 answers)
Closed 4 years ago.
I want to allow only digits, spaces and these characters:
\
+
(
)
I'd like it to be a minimum of 6 digits. The digits can be anywhere in the string.
This is the closest I can get it:
^(?=.{6,})[0-9\-\+\(\\) ]*$
My code works except for the minimum of 6 digits requirement. (It just enforces a minimum of 6 characters.)
Input text that should not match:
+()1234
Input text that should match:
+(44) 78666-05529
Your current lookahead ^(?=.{6,}) asserts that what follows is 6 or more times times any character from the start of the string.
If the digits can be anywhere in the string you have to assert a digit 6 times using a positive lookahead and a non capturing group (?:.*[0-9]){6}.
Note that this does not take care of the exact formats of the numbers in the example data.
^(?=(?:.*[0-9]){6})[0-9\-+(\\) ]*$
Regex demo
This question already has answers here:
How do I match an entire string with a regex?
(8 answers)
Closed 4 years ago.
I am trying to create a regular expression pattern in C# which allow you to have
next pattern: _DXX at the end of your .
Example :
04R5714A_D15 is correct
04R5714A_D05 is incorrect
04R5714A_D5 is correct
I tried : .*_D([1-9]{1}[0-9]?) but it didn't work :
.*_D[1-9]\d?$ should work for you.
Demo
.* catches everything up until your underscore
_D is a literal match
[1-9] matches one number in that range
\d? matches 0 or 1 single number (0-9)
$ is the end of the string
This question already has answers here:
Regular expression for not allowing spaces in the input field
(5 answers)
Closed 3 years ago.
I'm trying to use regex which checks only two things
Minimum 10 characters (No Max)
No whitespace allowed
I'm able to check minimum 10 chars with #"^[a-zA-Z0-9]{10,}$" and disallow white space with ^[^0-9 ]+$
Now the problem is, how to combine both of these and allow everything(alphanumeric including special characters) except white space
You could try to use a simpler regex pattern just to accept anything that is not a white-space: ^\S{10,}$
\S - matches any non-white-space character. More details here: https://learn.microsoft.com/en-us/dotnet/standard/base-types/regular-expression-language-quick-reference
This question already has answers here:
Regular expression to check if password is "8 characters including 1 uppercase letter, 1 special character, alphanumeric characters"
(14 answers)
Closed 5 years ago.
I am re-writting our password validation rules to meet a very strict set of requirements for a asp.net c# web forms application.
I am using regex from most of this (such as min characters, allowed characters etc).
One requirement that I am having trouble with finding the solution for is the following:
Must contain characters from 2 out of the 4 allowed character classes.
In this case the allowed classes are uppercase, lowercase, numeric and special (US ASCII).
If anyone can help on how to write this that would be apprecicated.
Thanks
The commenters all express valid concerns, but I'd just like to share this method for matching "at least 2 of 4 elements":
(?:.*?(?:a(?!.*a)|b(?!.*b)|c(?!.*c)|d(?!.*d))){2}
The letters 'a' to 'd' can be replaced with appropriate character classes for this question, but it can also be extended to more generally match "at least X of Y non-overlapping subexpressions".
This question already has answers here:
How do I match an entire string with a regex?
(8 answers)
Closed 6 years ago.
I need to detect following format when I enter serial number like
CK123456.789
I used Regex with pattern of
^(CV[0-9]{6}\.[0-9]{3}
to match but if I enter
CK123456.7890
it still able to proceed without flagging error. Is there a better regular expression to detect the trailing 3 digits after '.'?
Depending on how you use the regular expression matcher, you might need to enclose it in ^...$ which forces the pattern to be the whole string, i.e.
^CK[0-9]{6}\.[0-9]{3}$ (Note the CK prefix).
I've also removed your leading (mismatched) parenthesis.