繁体   English   中英

如何使用C#和正则表达式解析字符串?

[英]How do I parse a string using C# and regular expressions?

如何转换字符串:

"Microsoft Windows XP Professional x64 Edition|C:\\\\WINDOWS|\\\\Device\\\\Harddisk4\\\\Partition1"

"Microsoft Windows XP Professional x64 Edition"

...使用正则表达式?

我想删掉所有| 符号。 通过Regex.Replace容易实现吗? 在哪里可以找到Regex.Replace模式的语法描述?

您不需要正则表达式。 您可以使用子字符串:

var text = @"Microsoft Windows XP Professional x64 Edition|C:\WINDOWS|\Device\Harddisk4\Partition1";
text = text.Substring(0,text.IndexOf("|"));
string str = @"Microsoft Windows XP Professional x64 Edition|C:\WINDOWS|\Device\Harddisk4\Partition1";
string str2 = str.Split('|')[0];

str2 =“ Microsoft Windows XP Professional x64版”

如果确定要使用正则表达式:

Regex p = new Regex(@"([^|]*)|");
string s = @"Microsoft Windows XP Professional x64 Edition|C:\\WINDOWS|\\Device\\Harddisk4\\Partition1";
s = p.Match(s).Value;

使用String.Split(),它产生一个String [],然后选择零元素。

string GetOSType(string data)
{
      return data.Split(Convert.ToChar("|"))[0];
}

这是假设字符串总是要分割。 可能确定要在该函数周围包装try-catch块。

如果您仍然想了解有关正则表达式的更多信息,这里有一个不错的备忘单和一个简单的在线正则表达式生成器工具 ,可以帮助您入门。

一个简单的解决方案可能是使用:

    string szOrig = "Microsoft Windows XP Professional x64 Edition|C:\\WINDOWS|\\Device\\Harddisk4\\Partition1";
    string[] separator = new string[] { "|" };
    string[] szTemp = szOrig.Split(separator, StringSplitOptions.RemoveEmptyEntries);
    string szRequired = szTemp[0];

可能不是最好的方法,但是可行。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM