2009-08-29 159 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

相關問題