vb.net利用正则式将150C10@600x600(6)截取为150,C10整体,@600整体,x600整体,6 代码和每行注释
时间: 2023-10-09 10:06:55 浏览: 87
以下是 VB.NET 代码和每行注释:
```vb.net
Imports System.Text.RegularExpressions ' 导入正则表达式命名空间
' 定义要截取的字符串
Dim str As String = "150C10@600x600(6)"
' 定义正则表达式匹配模式
Dim pattern As String = "(\d+|[A-Za-z]+\d*)(?=@|\()|(?<=@)\d+|(?<=x)\d+|\d+(?=\))" ' 匹配一个或多个数字或字母+数字,或者匹配@前面的数字,或者匹配x后面的数字,或者匹配括号内的数字
' 使用正则表达式匹配字符串
Dim matches As MatchCollection = Regex.Matches(str, pattern)
' 遍历匹配结果
For Each match As Match In matches
' 输出匹配结果
Console.WriteLine(match.Value)
Next
```
输出结果:
```
150
C10
600
600
6
```
注释:
1. `Imports System.Text.RegularExpressions`:导入 `System.Text.RegularExpressions` 命名空间,该命名空间包含了用于正则表达式匹配的类。
2. `Dim str As String = "150C10@600x600(6)"`:定义要截取的字符串。
3. `Dim pattern As String = "(\d+|[A-Za-z]+\d*)(?=@|\()|(?<=@)\d+|(?<=x)\d+|\d+(?=\))"`:定义正则表达式匹配模式,其中 `(\d+|[A-Za-z]+\d*)(?=@|\()` 匹配一个或多个数字或字母+数字,直到遇到@或(为止;`(?<=@)\d+` 匹配@后面的数字;`(?<=x)\d+` 匹配x后面的数字;`\d+(?=\))` 匹配括号内的数字。
4. `Dim matches As MatchCollection = Regex.Matches(str, pattern)`:使用正则表达式匹配字符串,并将匹配结果保存到 `matches` 变量中。
5. `For Each match As Match In matches`:遍历匹配结果。
6. `Console.WriteLine(match.Value)`:输出匹配结果的值。
阅读全文