******高分--求正则表达式

OceanRain 2010-09-08 10:36:50
//position位置 input值
private const string parm = "20_341_21_33_14_5_6_7_9.htm";

private string GetUrlRule(int position, string input)
{
//注释string pattern = @"(\d+)_(\d+)_(\d+)_(\d+)_(\d+)_(\d+)_(\d+)_(\d+)_(\d+).htm";
//string parm = "20_341_21_33_14_5_6_7_9.htm";

根据用户传入的postion和input,动态替换parm里面的值.
}

要求:
我调用GetUrlRule(3, "77")----结果是:20_341_21_33_14_5_6_7_9.htm
我调用GetUrlRule(0, "147")----结果是:147_341_21_33_14_5_6_7_9.htm
我调用GetUrlRule(1, "66")----结果是:20_66_21_77_14_5_6_7_9.htm
尽量用正则.
...全文
91 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
兔子-顾问 2010-09-08
  • 打赏
  • 举报
回复
等一上午了没见到正则问题,正则问题的出现和过客的出现时间高度吻合,囧~
-过客- 2010-09-08
  • 打赏
  • 举报
回复
try...

private string GetUrlRule(int position, string input)
{
return Regex.Replace(parm, @"(?<=^(\d+_){" + position + @"})\d+", input);
}
-过客- 2010-09-08
  • 打赏
  • 举报
回复
try...

private string GetUrlRule(int position, string input)
{
return Regex.Replace(parm, @"(?<=^(\d+_){" + position + @"})\d+", input);
}
-过客- 2010-09-08
  • 打赏
  • 举报
回复
try...

private string GetUrlRule(int position, string input)
{
return Regex.Replace(parm, @"(?<=^(\d+_){" + position + @"})\d+", input);
}
鸭梨山大帝 2010-09-08
  • 打赏
  • 举报
回复
此需求用Splite要更加方便..

如果真的一定要用正则就需要动态配置正则的匹配条件... 这样跟Split差不多了.
OceanRain 2010-09-08
  • 打赏
  • 举报
回复
楼上的方法也不错
Peter200694013 2010-09-08
  • 打赏
  • 举报
回复
没用正则


private const string parm = "20_341_21_33_14_5_6_7_9.htm";

public static string GetUrlRule(int position, string input)
{
string[] tmp = parm.Split(new char[] { '_', '.' }, StringSplitOptions.RemoveEmptyEntries);

tmp[position] = input;

string res = string.Join("_", tmp, 0, tmp.Length - 1) + "." +tmp[tmp.Length - 1];

return res;
}


static void Main(string[] args)
{

Console.WriteLine(GetUrlRule(3, "77"));
}
LiuK_Moon 2010-09-08
  • 打赏
  • 举报
回复
要正则的话,是没法固定的,得要动态生成。

还是不要用正则了吧。你就用其他方法吧
OceanRain 2010-09-08
  • 打赏
  • 举报
回复
?没太明白
maddemon 2010-09-08
  • 打赏
  • 举报
回复
这正则得动态生成
比如pos是3,input是77
则是 \d+_\d+_77_\d+_\d+_...
OceanRain 2010-09-08
  • 打赏
  • 举报
回复
上面写错了:

要求:
我调用GetUrlRule(3, "77")----结果是:20_341_21_77_14_5_6_7_9.htm
我调用GetUrlRule(0, "147")----结果是:147_341_21_33_14_5_6_7_9.htm
我调用GetUrlRule(1, "66")----结果是:20_66_21_33_14_5_6_7_9.htm
尽量用正则.
-过客- 2010-09-08
  • 打赏
  • 举报
回复
这边网络有问题,居然连回了三楼

如position不为数字,或小于0等异常校验,楼主自行处理
OceanRain 2010-09-08
  • 打赏
  • 举报
回复
顶.不错。谢谢大家
Total Commander Chinese (Simplified) Enhanced Edition Release Notes ================================================================================= Total Commander 中文增强版 版本说明 软件名称:Total Commander 软件版本:9.21a 64位正式版 官方网站:http://www.ghisler.com 定制作者:飞扬时空 定制版本:5.14.1 个人主页:http://flyonzone.ys168.com 更新日期:2018年9月15日 第一节 软件简介 Total Commander 是一款著名的文件管理软件,其功能类似于资源管理器。它具有两个并 排的文件窗口,方便用户对文件及文件夹进行复制、移动、删除等操作和管理。 Total Commander 的特色功能: - 并排双窗口设计:处理不同位置文件更方便高效; - 支持文件夹标签:方便用户快速切换多个文件夹; - 内置文件查看器:可快速查看多种类型文件内容; - 丰富的插件资源:极大地拓展和增强了软件功能; - 批量重命名工具:支持多种命名规则,功能强大; - 文件夹同步工具:可比较并同步不同文件夹内容; - 文件间内容比较:可比较并修改文件间内容差异; - 增强的搜索功能:可按指定条件搜索文件及内容; - 文件传输客户端:支持多组服务器上传下载文件; - 文件压缩与解压:支持处理常见的压缩文件格式; - 文件分割与合并:可按要分割文件及合并文件; - 文件编码与解码:支持多种格式文件编码及解码; - 文件过滤与定位:可快速定位到符合条件的文件; - 支持命令行操作:支持带参数启动各种应用程序; - 常用文件夹列表:方便快速访问常用系统文件夹; - 文件夹历史列表:方便快速访问浏览过的文件夹; - 高度的可配置性:可自定义工具栏和菜单等资源; - 支持键盘快捷键:可通过快捷键调用大多数功能; - 支持多国语言及 Unicode:消除语言文字的鸿沟; - 支持长文件名:文件名长度最多可达 1022 字符; - 支持通配符及正则表达式:搜索及重命名更方便; - 其他功能有待您发掘…… Total Commander 9.x 系列版本新增特色功能: - 新增视图模式:可通过手动或按指定规则自动切换; - 新增垂直工具栏:方便用户点击图标访问更多功能; - 可集成 Everything :此工具可提高文件搜索效率; - 支持橡皮筯选择(框选)模式:选择文件更加方便; - 新增新式风格主菜单及工具栏图标,并可随时切换; - 更好地支持高分辨率及多显示器间不同分辨率显示; - 新增自动检查更新功能; - 其它功能改进和增强…… 我确信,Total Commander 是一款非常优秀的文件管理软件,它能给您带来更多便利,值 得我们深入了解并长期使用! 第二节 版本特色 相对于官方版本而言,本定制版本具有如下鲜明特色: - 完美中文版:集成中文版文档及插件,支持拼音首字母定位等功能; - 功能更强大:集成精选插件和实用工具,软件功能得以丰富和增强; - 使用更方便:精心定制菜单、工具栏、文件夹列表、快捷键等资源; - 界面更美观:精选图标、字体、颜色、尺寸等要素,视觉效果更佳; - 安装更灵活:可选择多种安装类型,充分满足个性化、多样化需。 第三节 定制内容 一、精心定制资源 1、中文菜单文件:精心定制菜单项目,内容更完整、调用更方便; 2、中文帮助文件:方便用户随时查阅,更好地理解和使用本软件; 3、图标及工具栏:集成三种图标方案,并添加系统资源等工具栏; 4、汉化插件资源:简体中文界面,用户使用更方便、体验更自然; 5、常用文件夹菜单:通过该菜单可快速跳转到常用的系统文件夹; 6、完善快捷键设置:通过使用快捷键,用户可快速调用相应功能; 7、预置外部命令:较丰富的外部命令,方便用户自行调用和设置; 8、说明文档:制作版本

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧