在 C# 中使用 System.Text.RegularExpressions 命名空间里的正则表达式(Regex)来验证一个字符串是否符合 “key:value;key:value” 的格式,其中 value 需要是数字,key的内容可以包含 /
时间: 2024-09-11 15:17:34 浏览: 34
在C#中,你可以使用`System.Text.RegularExpressions`命名空间下的正则表达式类(`Regex`)来验证给定字符串是否符合"key:value;key:value"的格式,并确保`value`部分是数字而`key`可以包含斜杠('/')。首先,你需要定义一个正则模式,然后使用`Regex.IsMatch()`方法进行匹配。
下面是一个简单的例子:
```csharp
using System;
using System.Text.RegularExpressions;
public class Program
{
public static bool ValidateString(string input)
{
string pattern = @"^(?:(\w+\/)?\w+):(\d+)(?:;\s*(\w+\/)?\w+:(\d+))*$";
return Regex.IsMatch(input, pattern);
}
public static void Main()
{
// 测试一些示例
Console.WriteLine(ValidateString("key1/val1:10;key2/val2:20")); // 如果有效则返回true
Console.WriteLine(ValidateString("key1/val1:abc;key2/val2:15")); // "val1"不是数字,返回false
Console.WriteLine(ValidateString("invalid format")); // 不符合格式,返回false
}
}
```
在这个正则表达式中:
- `^` 和 `$` 表示字符串的开始和结束。
- `(?:...)` 是非捕获组,用于分隔键值对。
- `\w+\/?\w+` 匹配一个或多个字母数字字符(包括斜杠),如果前面有可选的斜杠。
- `:\d+` 匹配冒号后跟一个或多个数字。
- `;` 后面跟随零个或多个空格,然后是一个新的键值对。
阅读全文