如何有正则替换掉所有符号?

new36198 2007-08-15 09:31:22
例如替换掉所有的中英文符号
,.!""
,。!“”等
...全文
499 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
wuhq030710914 2007-08-15
  • 打赏
  • 举报
回复
好像只能一个一个写
new36198 2007-08-15
  • 打赏
  • 举报
回复
一个一个写那也太恐怖了吧
BearRui 2007-08-15
  • 打赏
  • 举报
回复
[\w\s]*
zhqs1000 2007-08-15
  • 打赏
  • 举报
回复
up
大飞飞虫 2007-08-15
  • 打赏
  • 举报
回复
一个一个写,没有办法的哟...或者用表达式检测ASCII码值的范围,不过恐怕全角的很费劲
wdzr_826 2007-08-15
  • 打赏
  • 举报
回复
up
-过客- 2007-08-15
  • 打赏
  • 举报
回复
当然了,如果换一种思路,就是把楼主能确定想要保留的是什么,那也可以用[^]这种替换方式,比如说只保留英文字母和汉字,那么可以这样

string yourStr = .............;
string result = Regex.Replace(yourStr, @"[^a-zA-Z\u4e00-\u9fa5]", "");


[^\w]不好,它有局限性,它除匹配a-zA-Z0-9_外,还匹配本地字符集,如果是简体中文系统,\w会匹配简体中文,而繁体中文系统,它匹配的则是繁体中文,而且它还多了数字和一个“_”符号
foyuan 2007-08-15
  • 打赏
  • 举报
回复
手动添加了
把所有的列出来
eaglet 2007-08-15
  • 打赏
  • 举报
回复
测试了一下,下面这个正则表达式替换,可以去除掉符号
using System.Text.RegularExpressions;
Regex reg;
reg = new Regex(@"[^\w]");
String text = reg.Replace("!2sdjfo#!中文", "");
结果text = "2sdjfo中文"
shoushii 2007-08-15
  • 打赏
  • 举报
回复
检测ASCII的范围
-过客- 2007-08-15
  • 打赏
  • 举报
回复
对编码方面不是很熟,目前我能做到的也只是这样,还有一些全角的符号匹配不了,需要手动添加进去

string yourStr = ...............;
string result = Regex.Replace(yourStr, @"[\u0000-\u00FF\uFF00-\uFFFF]", "");

110,533

社区成员

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

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

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