我的正则表达式模式有什么问题?

时间:2013-11-27 23:06:36

标签: c# regex

我写了一个模式

string pattern2 = @"(?[<ports>\w+,*]*)";

此模式应该有助于解析下一格式的字符串

[port1, port2_4][portN_][port,port2,port5,p0_p1]

解析后我想要有一串字符串:

1. port1, port2_4
2. portN_
3. port, port2,port5,p0_p1

1 个答案:

答案 0 :(得分:2)

这将有效...

(?<=\[)(?<ports>.*?)(?=\])
  • (?<=\[)前缀[但不包含在匹配
  • (?<ports>.*?)命名捕获“ports”匹配任何非贪婪的东西(尽可能少) 可能的)
  • (?=\])后缀]但不包含在匹配

代码: -

Regex regex = new Regex(@"(?<=\[)(?<ports>.*?)(?=\])");
var m = regex.Matches("[port1, port2_4][portN_][port,port2,port5,p0_p1]");
foreach (var p in m)
{
    Console.WriteLine(p);
}

输出:

port1, port2_4
portN_
port,port2,port5,p0_p1