首页 新闻 会员 周边

正则表达式 请教!!!

0
悬赏园豆:5 [待解决问题]

2011-03-22 20:04:17 W3SVC1 SVR744HP360 10.168.16.59 GET /member/default.aspx 404

这样一个字符串(是iis日志),中间分别是空格隔开,我想取“/member/default.aspx”这个,正则表达式应该怎么写?

问题补充: 谢谢大家的回复,我这个要求不能用字符串空格分组.. 如果我这个要求第5个空格后面是“GET”的正则表达式呢? (第5 个空格后面可能是其它的,如:POST。字符串的其它地方也可能出现GET,但我只要求第5个空格后面是GET的) Regex regex = new Regex(".*?\\s.*?\\s.*?\\s.*?\\s.*?\\s.*?\\s(?.*?)\\s.*?"); Match match = regex.Match(str ); if (match.Success) { string strs = match.Value; string page = match.Groups["page"].Value; } 这个可以了!
yuejianjun的主页 yuejianjun | 初学一级 | 园豆:20
提问于:2011-03-24 19:52
< >
分享
所有回答(5)
0

如果是单行就这么点东西,

我肯定循环每行,然后直接 line.split(' ')[6] 就找到它了。

Morya | 园豆:205 (菜鸟二级) | 2011-03-25 10:40
0
string s = "2011-03-22 20:04:17 W3SVC1 SVR744HP360 10.168.16.59 GET /member/default.aspx 404";
Regex regex
= new Regex(@".* (?<page>/.*/.*\.aspx) .*");

var match
= regex.Match(s);

if (match.Success)
{
var page
= match.Groups["page"].Value;
}
Jerry Chou | 园豆:2642 (老鸟四级) | 2011-03-25 11:09
C#中的分组还真操蛋!
支持(0) 反对(0) Jerry Chou | 园豆:2642 (老鸟四级) | 2011-03-25 11:10
@
Jerry Chou:实际中我要求是取第6个空格后面“/member/default.aspx”的正则表达式。字符串其它空格后面可能也有这种“/member/defdddddddault.aspx” 等
如:2011-03-22 20:04:17 W3SVC1 SVR744HP360 10.168.16.59 GET /member/default.aspx 404 /member/def-----ault.aspx 80
支持(0) 反对(0) yuejianjun | 园豆:20 (初学一级) | 2011-03-25 15:08
0

/\s\S*?(\/)?\S*?\/\S*?\s/ig

Lecaf | 园豆:352 (菜鸟二级) | 2011-03-25 13:48
0

/\b(?<=[/])(.*?)\b(?=\d)

Wid纬度 | 园豆:60 (初学一级) | 2012-09-07 11:44
0

new Regex(@"(?<=\b(.*?\s+){5}GET\s*).*(?=\s)", RegexOptions.IgnoreCase)

Alec-Yin | 园豆:188 (初学一级) | 2012-11-26 12:41
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册