黑马程序员技术交流社区
标题:
正则表达式问题
[打印本页]
作者:
刘明杰
时间:
2013-2-4 21:15
标题:
正则表达式问题
问题:192.168.10.5[port=21,type=ftp]”,这个字符串表示IP地址为192.168.10.5的服务器的21端口提供的是ftp服务,其中如果“,type=ftp”部分被省略,则默认为http服务。请用程序解析此字符串,然后打印出“IP地址为***的服务器的***端口提供的服务为***”
string str = "192.168.10.5[port=21]";
string regex = @"^(\d{1,3}(\.\d{1,3}){3})\[port=(\d{2,6})(,type=([a-zA-Z]+)?\]$)";
Match mc = Regex.Match(str, regex);
if (mc.Success)
{
Console.WriteLine(mc.Groups[1].Value);
Console.WriteLine(mc.Groups[3].Value);
Console.WriteLine(string.IsNullOrEmpty(mc.Groups[5].Value) ? "http" : mc.Groups[5].Value);
}
Console.ReadKey();
//为什么 我这样写,输出为空 ,是那里写错了
作者:
王立
时间:
2013-2-5 20:35
本帖最后由 王立 于 2013-2-5 20:40 编辑
string str = "192.168.10.5[port=21]";
//主要 ((,type=([a-zA-Z]+))? 这里问题,需要加一对括号
// @"^(\d{1,3}(\.\d{1,3}){3})\[port=(\d{2,6})(,type=([a-zA-Z]+)?\]$)";
string regex = @"^(\d{1,3}(\.\d{1,3}){3})\[port=(\d{2,6})((,type=([a-zA-Z]+))?\])$";
Match mc = Regex.Match(str, regex);
if (mc.Success)
{
string a= mc.Groups[1].Value;
string b= mc.Groups[3].Value;
string c=string.IsNullOrEmpty(mc.Groups[5].Value) ? "http" : mc.Groups[5].Value;
}
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2