【问题标题】:c# should i use string with regex matchs or notc# 我应该使用字符串与正则表达式匹配还是不使用
【发布时间】:2016-03-05 02:58:02
【问题描述】:

我有一个文本,我将在该文本中找到匹配项,然后将结果放在 array 上。

当我尝试创建字符串数组和字符串变量时,我发现从 MatchCollection 类型更改为 String 类型真的很混乱。我得到错误无法转换。

我应该使用什么类型的数组和变量? 以及对字符串类型的需求是什么。我只是在使用它,因为我处理字符串。

我要注意我要在数组之间进行比较以找到共同的匹配项

这是我到目前为止的完整代码 c# regex array or list and which type string or what?

【问题讨论】:

  • 能否请您发布导致问题的代码?
  • 我会使用通用列表List<String> mylist =new List<String>(); 将匹配项保存在列表中。文本匹配的类型应声明为字符串:String match;。您可以将匹配项添加到列表中,例如 mylist.Add(match);
  • aha 所以我可以声明字符串匹配,而不是 MatchCollection。

标签: c# regex string-matching


【解决方案1】:

使用:

string sample = "1a2b3c4d";
MatchCollection matches = Regex.Matches(sample, @"\d");

List<string> matchesList = new List<string>();

foreach (Match match in matches) 
    matchesList.Add(match.Value);

matchesList.ForEach(Console.WriteLine);

或使用 LINQ:

List<string> matchesList2 = new List<string>();

matchesList2.AddRange(
    from Match match in matches
    select match.Value
);

matchesList2.ForEach(Console.WriteLine);

【讨论】:

  • .foreach 和 .Addrange 有什么区别
  • 在 foreach 中你一个一个地添加值,AddRange 从 IEnumerable 中添加由 linq 请求创建的值
  • linq 请求?那是什么。
  • 我应该与对象一起使用哪一个。我将在一个类上创建数组。
  • 随意发现 msdn link ,foreach 可能工作得更快
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-12-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多