首页新闻找找看学习计划

如何获取中间的日期?

0
[已解决问题] 解决于 2013-01-24 13:38

ms-opra126-13122018-2100.txt, 这个用正则表达式怎么弄,不懂.

日期前后格式不定, 大致为 *-date-*.txt

阿龍的主页 阿龍 | 菜鸟二级 | 园豆:268
提问于:2013-01-24 12:51
< >
分享
最佳答案
0

如果格式固定,用拆分函数 split('-'),取下标2的数组,就可以。

奖励园豆:5
geass.. | 小虾三级 |园豆:1777 | 2013-01-24 12:54

格式不固定,只是中间有一段日期而已

阿龍 | 园豆:268 (菜鸟二级) | 2013-01-24 12:56

@阿龍: 

string str = "ms-opra126-13122018-2100.txt";
Regex r = new Regex("-[0-9]{8}-", RegexOptions.IgnoreCase);
Match m = r.Match(str);
string reslut = m.Value.Substring(1,8);
geass.. | 园豆:1777 (小虾三级) | 2013-01-24 13:09

@geass..: 

下面的代码示例使用 Match.Result 来从 URL 提取协议和端口号。例如,“http://www.contoso.com:8080/letters/readme.html”将返回“http:8080”。

示例

String Extension(String url) { Regex r =new Regex(@"^(?<proto>\w+)://[^/]+?(?<port>:\d+)?/", RegexOptions.Compiled); return r.Match(url).Result("${proto}${port}"); }
                       
用这种方式怎么实现,你的那个可以用。
阿龍 | 园豆:268 (菜鸟二级) | 2013-01-24 13:20

@阿龍: 不清楚

geass.. | 园豆:1777 (小虾三级) | 2013-01-24 13:26

@geass..: 

string str = "ms-opra126-13122018-2100.txt";
//Regex r = new Regex("-[0-9]{8}-", RegexOptions.IgnoreCase);
Regex r = new Regex(@"-(?<date>[0-9]{8})-", RegexOptions.IgnoreCase);
string reslut = r.Match(str).Result("${date}");
geass.. | 园豆:1777 (小虾三级) | 2013-01-24 13:32

@阿龍: 这个比较稳妥。

string str = "ms-opra126-13122018-2100.txt";            
Regex r = new Regex(@"-(?<date>[0-9]{8})-[\s\S]+.txt", RegexOptions.IgnoreCase| RegexOptions.Compiled);
string reslut = r.Match(str).Result("${date}");
geass.. | 园豆:1777 (小虾三级) | 2013-01-24 14:20

@geass..: 很好。谢谢。 不懂正则。

阿龍 | 园豆:268 (菜鸟二级) | 2013-01-24 14:42
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册