用正则表达式剪切字符串

时间:2012-01-19 16:50:03

标签: c#

我有一个包含一些标签的字符串。

示例: asp.net vb6 crystal-reports

我使用正则表达式将此字符串剪切为多个标记,如下所示:

string[] technos = Regex.Split(technoString, @"\W+");

foreach (var techno in technos)
{
    ...
 }

问题是这个正则表达式是错误的:它产生太多标签。我的意思是asp.net必须只有一个标签,而水晶报告也必须只有一个标签。

此时,正则表达式为我提供了以下标记:

  • ASP
  • VB6
  • 报告

我希望

  • asp.net
  • VB6
  • 晶体的报告

有人知道要使用哪个正则表达式吗?

感谢。

3 个答案:

答案 0 :(得分:4)

为什么不使用String.Split

string str = "asp.net vb6 crystal-reports";
string[] parts = str.Split(); // Uses space as default separator

parts是一个包含所需输出的字符串数组。

答案 1 :(得分:3)

如果只是空格,为什么不这样做

technoString.Split(' ')

答案 2 :(得分:2)

分裂空格不行吗?

string[] technos = Regex.Split(technoString, @"\s+");

如果它只是普通空格,请使用正常分割:

string[] technos = technoString.Split();