请教一个正则表达式

flyskytoday 2014-05-09 10:24:13
字符串的替换

string str="abcd#wrsdppgj#ipwrwerwe#sfdiwir#wero8#ggsflllfsd#iiwr9sf#sfwrsddf";
变成
"abcd#wrsdppgj#ipwrwerwe#sfdiwir#ggsflllfsd#sfwrsddf";

就是把两个#之间的含有数字的字符串替换掉
两个#之间长度未知
thx
...全文
143 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
祥子爱游戏 2014-05-12
  • 打赏
  • 举报
回复
str = Regex.Replace(str,@“(?<=#[^#]*?)\d+(?=[^#]*?#)”,""); 如果不可以就回复我
h82258652 2014-05-09
  • 打赏
  • 举报
回复
            string str = "abcd#wrsdppgj#ipwrwerwe#sfdiwir#wero8#ggsflllfsd#iiwr9sf#sfwrsddf";
            string result = "abcd#wrsdppgj#ipwrwerwe#sfdiwir#ggsflllfsd#sfwrsddf";

            string regexout = string.Join("#", str.Split(new char[] { '#' }, StringSplitOptions.RemoveEmptyEntries).Where(temp => Regex.IsMatch(temp, @"\d") == false));
来个linq混合正则。
flyskytoday 2014-05-09
  • 打赏
  • 举报
回复
引用 2 楼 Return_false 的回复:
string str = "abcd#wrsdppgj#ipwrwerwe#sfdiwir#wero8#ggsflllfsd#iiwr9sf#sfwrsddf";

            str = Regex.Replace(str, @"(?<=^|#)[^#]*?\d[^#]*?#?", "");
            //abcd#wrsdppgj#ipwrwerwe#sfdiwir#ggsflllfsd#sf#sfwrsddf
感谢感谢,不过好像还不对,你试试这个 string str = "、。#aaaaaa#bbbbbb#ccccc#ddddd8#eeeeee#ffff9fffff#ggggggg"; 其中f的过滤不对 其实我要过滤的是以关键字":。" 中华大厦:-1层:。//这种空的要过滤 1层:。//这种空的要过滤 2层:电梯。//这种不要过滤
iceMung 2014-05-09
  • 打赏
  • 举报
回复
引用 2 楼 Return_false 的回复:
string str = "abcd#wrsdppgj#ipwrwerwe#sfdiwir#wero8#ggsflllfsd#iiwr9sf#sfwrsddf";

            str = Regex.Replace(str, @"(?<=^|#)[^#]*?\d[^#]*?#?", "");
            //abcd#wrsdppgj#ipwrwerwe#sfdiwir#ggsflllfsd#sf#sfwrsddf
(?<=^|#)[^#]*?\d[^#]*(?)#? 貌似多了个问号
  • 打赏
  • 举报
回复
string str = "abcd#wrsdppgj#ipwrwerwe#sfdiwir#wero8#ggsflllfsd#iiwr9sf#sfwrsddf";

            str = Regex.Replace(str, @"(?<=^|#)[^#]*?\d[^#]*?#?", "");
            //abcd#wrsdppgj#ipwrwerwe#sfdiwir#ggsflllfsd#sf#sfwrsddf
flyskytoday 2014-05-09
  • 打赏
  • 举报
回复
大神们呢
欢乐的小猪 2014-05-09
  • 打赏
  • 举报
回复
简单解释下@"(#[^#]*\d+[^#]*)(?=#)" 匹配两个#号间包含数字的数据(包含前面的#字符,不包含后面的#字符)替换为空 匹配包含数字那里用的\d+ (?=#)这个是匹配#的位置。并未匹配#字符。 希望对你有帮助
欢乐的小猪 2014-05-09
  • 打赏
  • 举报
回复
看了你一个帖子,顺便点开了这个。。思路一样,见代码
            string str0 = "abcd#wrsdppgj#ipwrwerwe#sfdiwir#wero8#ggsflllfsd#iiwr9sf#sfwrsddf";
            var result0 = new Regex(@"(#[^#]*\d+[^#]*)(?=#)", RegexOptions.Singleline).Replace(str0, "");

110,499

社区成员

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

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

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