在C#中,你可以使用System.Text.RegularExpressions命名空间下的Regex类来进行字符串格式验证。如果你想检查字符串是否遵循"key:value;key:value"的格式,其中value部分必须是数字,key符合文件路径命名规范
时间: 2024-09-11 18:18:11 浏览: 45
RegexWrapper:SQLCLR 包装类 System.Text.RegularExpressions.Regex
在C#中,你可以通过`System.Text.RegularExpressions`命名空间里的`Regex`类来编写正则表达式(RegEx),以便验证字符串是否按照特定模式匹配。例如,如果你想要验证字符串是否遵循 "key:value;key:value" 的格式,并且value部分是数字而key符合文件路径的命名规则,可以这样做:
```csharp
using System.Text.RegularExpressions;
public bool ValidateString(string input)
{
string pattern = @"^(?:(?:[a-zA-Z0-9_]+(?:\\.[a-zA-Z0-9_]*)*|\/)[^:]*):([0-9]+);*(?:[^:]*:[0-9]+)*$";
// 使用Regex.IsMatch()函数进行匹配
return Regex.IsMatch(input, pattern);
}
// 示例用法
bool isValid = ValidateString("path/to/file:123;another/path:456");
```
这个正则表达式解释:
- `^` 表示开始
- `(?:...)` 是非捕获组,用于键值对的匹配
- `[a-zA-Z0-9_]+(?:\\.[a-zA-Z0-9_]*)*|\/` 匹配文件路径
- `[^:]*` 匹配除冒号外的任意字符,直到遇到冒号
- `:` 后面跟随一个数字 `([0-9]+)`,表示value部分必须是数字
- `;*` 允许多个分号
- `[^:]*:[0-9]+` 重复前面的部分,处理剩余的键值对
阅读全文