I want to filter the following strings (w/o quotes):
'VISTA'
<-- case doesn't matter here, can be VISTA, Vista, vista, visTA'1+'
'1 +'
But not variations like
'Vaddx'
'Aista'
'1 +'
'1'
'1++'
'+1'
and so on
I'm using the following pattern for match, but I think something is missing.
[VvIiSsTtAa]|1\\s\\+|1\\+
and the code bellow for test.
static void Main(string[] args)
{
string[] paymentType = new string[] {"VISTA", "vista", "Vista", "vtid", "1", "1+", "1 +", "+", "+1", "1++"};
foreach (var item in paymentType)
{
Console.Write($"Item {item} is ");
if(!Regex.Match(item, "[VvIiSsTtAa]|1\\s\\+|1\\+").Success)
Console.Write("not ");
Console.WriteLine("valid.");
}
Console.WriteLine("\n\n\n");
}
What I've got is:
- Item VISTA is valid
- Item vista is valid
- Item Vista is valid
- Item vtid is valid <<---- WRONG
- Item 1 is not valid
- Item 1+ is valid
- Item 1 + is not valid
- Item + is not valid
- Item +1 is not válid
- Item 1++ is valid <<---- WRONG
What is missing in my patter string?
Thanks in advance.