2009-08-29 156 views
0

我需要一些帮助,使用正则表达式来提取以下信息位。使用正则表达式从字符串中提取数据

这里是我的输入字符串“C:\是”

********在字符串的开始和缺少的字符之间而不是在最后= 一个奇怪的看着标L. * **

我需要将“C:\”提取到一个字符串中,将“Yes”提取到另一个字符串中。

在此先感谢。

+0

我有一个想法,但我一直全力以赴为3个小时,现在这样...... =) – IbrarMumtaz 2009-08-29 14:58:38

回答

1

下面的正则表达式中的第一个捕获组返回C:\,其余第二:

^(\w:\\)(.*)$ 

这是在寻找:一个完整​​的字串(^…$)开始以字母(\w,虽然[a-z]会可能更准确的Windows驱动器号),其次是:\。其余的(.*)被捕获到第二组中。

请注意,这不适用于UNC路径。如果你在使用路径,最好的办法不是使用字符串和正则表达式,而是使用System.IO中的API。在那里找到的类已经提供了你想要的功能。

+0

我goiong给这一个镜头,它看起来像我想要的东西,似乎很容易阅读。如果它解决了我的问题,我会用答案来解决它。谢谢。 – IbrarMumtaz 2009-08-30 00:03:29

0
Regex r = new Regex("([A-Z]:\\)([A-Za-z]+)"); 
Match m = r.Match(@"C:\"); 

string val1 = m.Groups[0]; 
string val2 = m.Groups[1]; 
3

我不打扰正则表达式。工作太多,而且我很可能会把它搞砸。

var x = @"C:\Yes"; 

var root = Path.GetPathRoot(x); // => @"C:\" 
var file = Path.GetFileName(x); // => "Yes" 
+0

这可以,但不是用路径工作,是的是别的都在一起。不管怎么说,多谢拉。 – IbrarMumtaz 2009-08-30 22:27:34

+0

如果它看起来像“C:\ Yes”,即使它不是路径,我仍然会使用这些方法,原因正是给出的原因。无论是否为配置文件,对计算机都没有影响。 – Alec 2009-09-01 14:01:46

相关问题