标题:求助正则表达式问题
只看楼主
fhxls
Rank: 1
等 级:新手上路
帖 子:26
专家分:0
注 册:2006-1-27
 问题点数:0 回复次数:3 
求助正则表达式问题

我的代码:
using System;
using System.Collections.Generic;
using System.Text;
using System.Text.RegularExpressions;
using RegexTest;

namespace RegexTest
{
class Program
{
static void Main(string[] args)
{
string strUrl = @"www.aaa.com.cn\2005\06\05\default.htm";
strUrl = Regex.Replace(strUrl,@"(\d{2,4})+(?=\\)","");
Console.WriteLine(strUrl);
}
}
}
为什么Replace不好用阿?请大家给我讲解一下。谢谢

搜索更多相关主题的帖子: 正则表达式 using System strUrl 正则表达式 using System strUrl 
2006-12-25 17:22
fhxls
Rank: 1
等 级:新手上路
帖 子:26
专家分:0
注 册:2006-1-27
得分:0 
还有如何用Regex把字符串改为www.aaa.com.cn\default.htm?yy=2005&mm=06&dd=05
谢谢各位了
2006-12-25 17:29
fhxls
Rank: 1
等 级:新手上路
帖 子:26
专家分:0
注 册:2006-1-27
得分:0 

问题已解决。谢谢各位
附代码:
string strUrl = @"www.aaa.com.cn\2005\06\05\default.htm";
string strPattern=@"(\d{2,4})+\\";
Regex re = new Regex(@"(\d{2,4})+(?=\\)");
Match mthDate = re.Match(strUrl);
string[] strDate = new string[3];
int intCount = 0;
while (mthDate.Success)
{
// Console.WriteLine(mthDate.Groups[0]);
strDate[intCount] = mthDate.Groups[0].ToString();
intCount += 1;
mthDate = mthDate.NextMatch();

}
strUrl = Regex.Replace(strUrl,strPattern,"");
Console.WriteLine(strUrl);
string strPAdd = @"htm";
strUrl = Regex.Replace(strUrl,strPAdd,@"htm?yy="+strDate[0] +"&",RegexOptions.RightToLeft);
strPAdd = @"\&";
strUrl = Regex.Replace(strUrl, strPAdd, @"mm=" + strDate[1] + "&", RegexOptions.RightToLeft);
strUrl = Regex.Replace(strUrl, strPAdd, @"dd=" + strDate[2], RegexOptions.RightToLeft);
Console.WriteLine(strUrl);
Console.Read();

欢迎批评指正更有效率的方法。

2006-12-25 18:00
shenba
Rank: 1
等 级:新手上路
威 望:1
帖 子:179
专家分:0
注 册:2006-9-17
得分:0 

[CODE]StringBuilder res=new StringBuilder();
Regex re = new Regex(@"(?<year>\d{2,4}\\)(?<month>\d{2}\\)(?<day>\d{2}\\)", RegexOptions.Compiled);

res.Append(re.Replace(@"www.aaa.com.cn\2005\06\05\default.htm",""));
Match match = re.Match(@"www.aaa.com.cn\2005\06\05\default.htm");

string year=match.Groups["year"].Value.Substring(0,4);
string month=match.Groups["month"].Value.Substring(0,2);
string day=match.Groups["day"].Value.Substring(0,2);

res.Append(string.Format("?yy={0}&mm={1}&dd={2}", year, month, day));
MessageBox.Show(res.ToString());[/CODE]


2006-12-25 22:53



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-111985-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.061504 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved