我需要实现这样的输出列表:
Zone1
Zone7
Zone2
来自这个字符串:
设置区域“Zone1”vrouter“trust-vr”
设置区域“Zone3”vrouter“Untrust-vr”
设置区域“Zone7”vrouter“trust-vr”
设置区域“Zone2”vrouter“trust-vr”
设置区域“Zone4”vrouter“Untrust-vr”
要做到这一点,我有代码:
foreach (string v in vr)
{
string pattern = @"set zone ""([\w-]+)"" (vrouter)"+v;
var myCollection =
Regex.Matches(reader1.ReadToEnd(), pattern)
.Cast<Match>().Where(m => m.Success)
.Select(m => m.Groups[1].Value)
.Distinct();
foreach (string match in myCollection)
{
txt1.Text += match + Environment.NewLine;
}
}
我认为我没有正确使用模式regexp中的变量 v ,因为这个变量代码可以正常工作但输出所有区域。但是我只需要那个带有这个变量名称的vrouter。
答案 0 :(得分:1)
尝试
string pattern = @"set zone ""([\w-]+)"" vrouter """+v;
(假设v包含信任或Untrust等字符串)