C#正则表达式截取 Id="ST-SmarX1200A1241" IP="192.168.1.87" Port="20000" CustomInfoId="ExecutorCusInfo2-3"/> 中 2-3
时间: 2023-07-02 12:07:27 浏览: 210
你可以使用正则表达式来截取这个字符串中的 "2-3",具体方法如下:
```csharp
string input = 'Id="ST-SmarX1200A1241" IP="192.168.1.87" Port="20000" CustomInfoId="ExecutorCusInfo2-3"/>';
string pattern = @"CustomInfoId=""ExecutorCusInfo(\d+-\d+)""";
Match match = Regex.Match(input, pattern);
if (match.Success)
{
string result = match.Groups[1].Value;
Console.WriteLine(result); // 输出 "2-3"
}
```
解释一下正则表达式 `CustomInfoId=""ExecutorCusInfo(\d+-\d+)""` 的含义:
- `CustomInfoId=""ExecutorCusInfo`:匹配字符串中的 "CustomInfoId=\"ExecutorCusInfo" 部分;
- `(\d+-\d+)`:使用括号将数字和连字符 "-" 包裹起来,表示要截取的部分,其中 `\d+` 表示匹配一个或多个数字,`-` 表示匹配连字符,`\d+` 表示再次匹配一个或多个数字;
- `""`:匹配字符串中的最后一个双引号。
因为我们使用了括号将要截取的部分包裹起来,所以可以使用 `Groups` 属性来获取匹配到的结果。`Groups[0]` 表示整个匹配结果,`Groups[1]` 表示第一个括号中的内容,以此类推。在这个例子中,我们需要获取的是第一个括号中的内容,因此使用 `Groups[1]` 来获取结果。
阅读全文