Combining these two Regular Expressions into one
c#, regex
Solution
@"^(?=.*[a-zA-Z])(?=.*\d)"
^ # From the begining of the string
(?=.*[a-zA-Z]) # look forward for any number of chars followed by a letter, don't advance pointer
(?=.*\d) # look forward for any number of chars followed by a digit)
Uses two positive lookaheads to ensure it finds one letter, and one number before succeding. You add the `^` to only try looking forward once, from the start of the string. Otherwise, the regexp engine would try to match at every point in the string.
Problem
I have the following in C#: ``` public static bool IsAlphaAndNumeric(string s) { return Regex.IsMatch(s, @"[a-zA-Z]+") && Regex.IsMatch(s, @"\d+"); } ``` I want to check if parameter `s` contains at least one alphabetical character and one digit and I wrote the above method to do so. But is there a way I can combine the two regular expressions (`"[a-zA-Z]+"` and `"\d+"`) into one ?