我不是比赛模式专家,我一直在努力工作几个小时:/
我有一个输入字符串,如下所示:
Dim text As String = "32 Barcelona {GM C} 2 {*** Some ""cool"" text here}"
我只想提取3件事:
我尝试的模式是这样的:
Dim pattern As String = "^32\s(?<city>[^]].*\s)\{(?<titles>.*\})*"
Dim m As Match = Regex.Match(text, pattern)
If (m.Success) Then
Dim group1 As Group = m.Groups.Item("city")
Dim group2 As Group = m.Groups.Item("titles")
If group1.Success Then
MsgBox("City:" + group1.Value + ":", MsgBoxStyle.Information)
End If
If group2.Success Then
MsgBox(group2.Value, MsgBoxStyle.Information)
End If
Else
MsgBox("fail")
End If
但它无论如何都不起作用:( 提取这3个变量的模式应该是什么?
答案 0 :(得分:3)
^\d*(?<City>[A-Z a-z0-9]*)\s*\{(?<Titles>[A-Z a-z0-9]*)\}.*?\{(?<Cool>.*?)\}$
似乎与您的样本输入相匹配。
Expresso是设计正则表达式的绝佳工具。