【问题标题】:Don't split between specific characters不要在特定字符之间拆分
【发布时间】:2014-11-05 21:22:40
【问题描述】:

目前,我正在使用此代码拆分字符串:

string[] split = source.Split(new char[] { ' ' });

所以“快速/小棕/狐狸”将是: The quick /little brown/ fox

而我想要的是: The quick /little brown/ fox

我已经看到了一些解决方案(但我并不真正理解它们),但它们都进入了var,我希望它进入string[]

【问题讨论】:

  • 如果没有正则表达式,你几乎无法做到这一点。您必须使用拆分还是可以使用正则表达式?
  • var 可以是 string[]var 是您的方法返回的任何内容。如果你的方法返回一个字符串数组,那么它就是一个字符串数组。
  • 如果需要,可以使用正则表达式。
  • 为什么它太宽泛
  • @xxbbcc:在我看来,这个问题是明确而具体的。所以我会理解它是否会因为有重复(肯定)而被关闭,但不是因为它“太宽泛”。

标签: c# string split character


【解决方案1】:

您可以为此使用正则表达式:

string s = "The quick /little brown/ fox";
string[] result = Regex.Matches(s, @"((/.+/)|(\b\w+\b))").Cast<Match>().Select(m => m.Value).ToArray();
result.ToList().ForEach(x => Console.WriteLine(x));

输出:

这 快的 /小棕/ 狐狸

【讨论】:

  • 人们可能想让/.../匹配非贪婪,因为正则表达式的编写方式,拆分a /b c/ d /e f/ g之类的东西可能会给你a/b c/ d /e f/和@ 987654326@ 而不是预期的 a/b c/d/e f/g。只是说......
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-12-14
  • 2023-04-09
相关资源
最近更新 更多