string pattern = @"\s*\[SYSTEM\]\s*" +
@"<reset\s+system>\s*" +
@"(?<ResetSystem>.*?)\s*" +
@"<host\s+name>\s*" +
@"(?<HostName>.*?)\s*" +
@"<serial\s+number>\s*" +
@"(?<SN>.*?)\s*$";Regex r = new Regex( pattern , RegexOptions.IngoreCase | RegexOptions.SingleLine );
Match m = r.Match ( systemSection );
if ( m.Success )
{
string hostName = m.Groups[ "HostName" ].Value;
}
@"<reset\s+system>\s*" +
@"(?<ResetSystem>.*?)\s*" +
@"<host\s+name>\s*" +
@"(?<HostName>.*?)\s*" +
@"<serial\s+number>\s*" +
@"(?<SN>.*?)\s*$";Regex r = new Regex( pattern , RegexOptions.IngoreCase | RegexOptions.SingleLine );
Match m = r.Match ( systemSection );
if ( m.Success )
{
string hostName = m.Groups[ "HostName" ].Value;
}
string patten = @"<(?<Title>[^<>]+)>\s*(?<Content>[^<]*?)\s*((?=<)|$)";Regex r = new Regex( pattern , RegexOptions.IngoreCase | RegexOptions.SingleLine );
Match m = r.Match ( systemSection );
if ( m.Success )
{
string title = m.Groups[ "title" ].Value;
string content = m.Groups[ "content" ].Value;
}但当content中包含<符号时,得到的字符串不符合要求
这条语句中,我如何指定我要哪个的Section和哪个的Key?
string patten = @"<(?<Title>[^<>]+)>\s*(?<Content>[^<]*?)\s*((?=<)|$)";
这条语句中,我如何指定我要哪个的Section和哪个的Key?
-----------------------------------------------------------------
将上面的代码改一改:
string patten = @"<(?<Title>[^<>]+)>\s*(?<Content>[^<]*?)\s*((?=<)|$)";Regex r = new Regex( pattern , RegexOptions.IngoreCase | RegexOptions.SingleLine );
Match m = r.Match ( systemSection );
while ( m.Success ) //循环提取所有的Section和Key
{
string title = m.Groups[ "title" ].Value;
string content = m.Groups[ "content" ].Value;
m = m.NextMatch();
}
string content = m.Groups[ "content" ].Value;
这两个获得的值都是"",就是没有取回任何东东
为什么?
为什么?
--------------------
注意大小写。
实现替换操作,举个简单的例子
我像将
1-2,2-3替换成2-1,3-2
可以这样写string a = "1-2,2-3";
a = Regex.Replace( a , @"(?<a>\d)-(?<b>\d)(,|$)) , "${b}-${a}" );
<reset system>
Yes
<host name>
Network Camera with Pan/Tilt
<serial number>
0002D10075EB问题:
另外,如何修改host name的信息,比如把“Network Camera with Pan/Tilt”这些信息改为“Network Camera”最后,假定host name这个key不存在,如何建立?如何删除这个Key?就剩下这两个问题了,谢谢
正则表达式不匹配不就找不到了吗?至于写的话应该不是正则表达式的事情。
删除的话replace为空不就可以了嘛!!!
既然解决了前边,这些本来就不是问题了