请教c#的正则表达式

yangedie 2012-07-28 03:54:23
public string test(string s)
{
string str = "aa11,ab11,ac11,aa26,aa25,ac33,ab23";
Regex re = new Regex(s + "\\d+");

return Regex.Replace(str, re, "xxxx");
}

如果test("aa"),就把str的aa11、aa26、aa25替换返回xxxx,ab11,ac11,xxxx,xxxx,ac33,ab23
如果test("ab"),就把str的ab11、ab23替换返回aa11,xxxx,ac11,aa26,aa25,ac33,xxxx

上面的方法总是错误
...全文
44 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
yangedie 2012-07-28
  • 打赏
  • 举报
回复
谢谢,刚开始也是按照5楼方法写的,
只是也写不好,也是把string和Regex混在一起
huangwenquan123 2012-07-28
  • 打赏
  • 举报
回复
或者你写成这样

public string test(string s)
{
string str = "aa11,ab11,ac11,aa26,aa25,ac33,ab23";
Regex reg = new Regex(s + "\\d+");
return reg.Replace(str, "xxxx");
}
huangwenquan123 2012-07-28
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 的回复:]
结果就是帖子里的两个如果啊,写成下面就实现了,
public string test(string s)
{
string str = "aa11,ab11,ac11,aa26,aa25,ac33,ab23";
//Regex re = new Regex(s + "\\d+");
//return Regex.Replace(str, re, "xxxx");
r……
[/Quote]
Regex.Replace第二个参数是string类型的,你传了Regex,所以会出错。
huangwenquan123 2012-07-28
  • 打赏
  • 举报
回复
        public static string test(string s)
{
string str = "aa11,ab11,ac11,aa26,aa25,ac33,ab23";

return Regex.Replace(str, s + "\\d+", "xxxx");
}
yangedie 2012-07-28
  • 打赏
  • 举报
回复
结果就是帖子里的两个如果啊,写成下面就实现了,
public string test(string s)
{
string str = "aa11,ab11,ac11,aa26,aa25,ac33,ab23";
//Regex re = new Regex(s + "\\d+");
//return Regex.Replace(str, re, "xxxx");
return Regex.Replace(str, s + "\\d+", "xxxx");
}
还请解释为什么Regex re = new Regex(s + "\\d+");会出错
Regex.Replace(string, string, string) 最匹配的重载方法具有一些无效参数
  • 打赏
  • 举报
回复
你想要的结果是什么?

110,534

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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