匹配后从String中提取信息

时间:2011-11-24 16:54:48

标签: c# regex

我有一个字符串:

var display=@("every (Name=Event(HostInfo='HostName',UserInfo='UserName'))");

此字符串可能会更改,但可能并非始终以每个字符开头(名称= ,但始终包含 HostInfo UserInfo 将在方式显示。我需要提取HostName和UserName的信息。 比方说,其他时间显示字符串可以是:

var display=@("Event(UserInfo='UserName'))");

有什么想法吗?

2 个答案:

答案 0 :(得分:2)

我会像两个正则表达式那样运行两次:

string UserInfoPattern = @"UserInfo='(?<UserInfo>[^']+)";
string HostInfoPattern = @"HostInfo='(?<HostInfo>[^']+)";

这样,如果订单被切换,你的正则表达式就不会破坏。

答案 1 :(得分:1)

用户正则表达式。最简单的情况是

string pattern1 = @"HostInfo='(?<HostInfo>[^']*)'";
string pattern2 = @"UserInfo='(?<UserInfo>[^']*)'";