高手进 这样的正则怎么写?

海飞 2009-04-10 06:35:41
高手进 这样的正则怎么写?

中国上海 松江容乐路168号 大哈公寓 128室
中国上海 松江容乐路168号 大哈公寓 128
中国上海 松江容乐路168号
=----------------------
如果有室,请把 数字替换成*号。没有请保留不变,结果要求如下:::
-------------------
中国上海 松江容乐路168号 大哈公寓 ***室
中国上海 松江容乐路168号 大哈公寓 ***
中国上海 松江容乐路168号
...全文
108 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
冰凝瞬间1986 2009-04-11
  • 打赏
  • 举报
回复
str = Regex.Replace(str, @"(?m)\d(?=\d*(?:\s*室|\s*$))", "*");
海飞 2009-04-11
  • 打赏
  • 举报
回复
高手真是云集啊。我先验证一下。顺便说一下。我那三行。是代表三类地址。。之所以这么做。和信息保密有一定关系。
wuyi8808 2009-04-10
  • 打赏
  • 举报
回复
using System;
using System.Text.RegularExpressions;

class A
{
static void Main()
{
string str = @"中国上海 松江容乐路168号 大哈公寓 12 室
中国上海 松江容乐路168号 大哈公寓 12345
中国上海 松江容乐路168号 ";
str = Regex.Replace(str, @"(?m)\d(?=\d*(?:\s*室|\s*$))", "*");
Console.WriteLine(str);
}
}
/* 程序输出:
中国上海 松江容乐路168号 大哈公寓 ** 室
中国上海 松江容乐路168号 大哈公寓 *****
中国上海 松江容乐路168号
*/
wuyi8808 2009-04-10
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 lxcnn 的回复:]
第二行没有室为什么也换成*了 [/Quote]

LZ要求的:

[Quote=引用楼主 raifei 的帖子:]
高手进 这样的正则怎么写?

中国上海 松江容乐路168号 大哈公寓 128室
中国上海 松江容乐路168号 大哈公寓 128
中国上海 松江容乐路168号
=----------------------
如果有室,请把 数字替换成*号。没有请保留不变,结果要求如下:::
-------------------
中国上海 松江容乐路168号 大哈公寓 ***室
中国上海 松江容乐路168号 大哈公寓 ***
中国上海 松江容乐路168号
[/Quote]
-过客- 2009-04-10
  • 打赏
  • 举报
回复
第二行没有室为什么也换成*了

string result = Regex.Replace(yourStr, @"\d(?=\d*室)", "*");
richTextBox2.Text = result;
wuyi8808 2009-04-10
  • 打赏
  • 举报
回复
using System;
using System.Text.RegularExpressions;

class A
{
static void Main()
{
string str = @"中国上海 松江容乐路168号 大哈公寓 128室
中国上海 松江容乐路168号 大哈公寓 128
中国上海 松江容乐路168号 ";
str = Regex.Replace(str, @"(?m)\d+\s*(?=室|$)", "***");
Console.WriteLine(str);
}
}
/* 程序输出:
中国上海 松江容乐路168号 大哈公寓 ***室
中国上海 松江容乐路168号 大哈公寓 ***
中国上海 松江容乐路168号
*/
消失的尘芥 2009-04-10
  • 打赏
  • 举报
回复
mark
我姓区不姓区 2009-04-10
  • 打赏
  • 举报
回复

string str = @"中国上海 松江容乐路168号 大哈公寓 128室
中国上海 松江容乐路168号 大哈公寓 128
中国上海 松江容乐路168号 ";
str = Regex.Replace(str, @"(\d+)(室)", new MatchEvaluator(delegate(Match match) { return new string('*', match.Groups[1].Value.Length) + match.Groups[2].Value; }));
Console.WriteLine(str);

111,126

社区成员

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

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

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