2012-07-28 39 views
0

我想提取此( “5013a27a-3e44d69d-4120-080027a10080” 而异)匹配句获得一个正则表达式中的字符串

/vmfs/volumes/5013a27a-3e44d69d-4120-080027a10080 

出来的(这是一个字符串):

name     datastore1 
url     /vmfs/volumes/5013a27a-3e44d69d-4120-080027a10080 
capacity    123480309760 
freeSpace   96355745792 
accessible   1 
type     VMFS 
multipleHostAccess <unset> 

所以我也做了以下内容,但它不工作:

Regex regex = new Regex(@"[/][A-Za-z0-9/-][/] [ ]"); 
MatchCollection match = regex.Matches(input); 

我在哪里出了错?

+0

几乎无处不在:)该正则表达式将匹配'/ p /',而不是其他的。 – Ryan 2012-07-28 14:03:31

+0

[Espresso](http://www.ultrapico.com/Expresso.htm)有人吗? :) – Darek 2012-07-28 14:34:31

回答

0

试试这个正则表达式:

@"/([A-Za-z0-9/-]+)" 

获取组1

+0

谢谢,但它本身意味着什么? – user1559618 2012-07-28 14:07:24

+0

@ user1559618:它不是自己的。这意味着“匹配一个或多个先前项目”。因此,字面上的斜线,后面跟着一个包含一个或多个字母,数字或短划线的组。 – Ryan 2012-07-28 14:09:46

0
string url = Regex.Match(text, @"url\s+(.+)").Groups[1].Value; 

的价值,我相信这是更可靠然后搜索斜杠。 \s匹配任何空白字符,这将处理“url”和值之间的空白。

相关问题