Regex.Matches在0位置返回完整结果

时间:2013-07-29 19:10:18

标签: c# regex .net-4.0

以下内容:

Regex.Matches("Some Text @param Some More", "(.*)(@param)(.*)")

返回

  • 一些文字@param更多
  • 一些文字
  • @参数
  • 更多

有没有办法没有第一线?我找不到任何关于此的文件。并且,如果我使用在线解析器,他们只列出3组...我想避免首先在忽略代码...

2 个答案:

答案 0 :(得分:2)

使用命名组捕获不必使用索引。改为:

Regex.Matches("Some Text @param Some More", "(?<One>.*)(@param)(?<Two>.*)")
然后

访问匹配数据,例如

var data1 = mt.Groups["One"].Value;
var data2 = mt.Groups["Two"].Value;

答案 1 :(得分:1)

试试这个:

Regex.Matches("Some Text @param Some More", "^.*(?=@param)|@param|(?<=@param).*");