我要过滤以下字符串(不带引号):
-
'VISTA'
-
'1+'
-
'1 +'
但不能像
-
'Vaddx'
-
'Aista'
-
'1 +'
-
'1'
-
'1++'
-
'+1'
以此类推
我使用以下模式进行比赛,但我认为缺少某些内容。
[VvIiSsTtAa]|1\\s\\+|1\\+
和下面的代码进行测试。
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");
}
我所拥有的是:
- 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
我的模式字符串中缺少什么?
谢谢。