c# – 如何在这种情况下使用Regex.Replace?
发布时间:2020-12-16 01:53:36 所属栏目:百科 来源:网络整理
导读:我正在使用正则表达式检查字符串的正确性(我想允许字符A-Z,a-z,*,空格,–,,%,.,/).我的代码是这样的: Regex r = new Regex("^[A-Z0-9.$/+%- ]+$");string myString = "ABCDEFGH 12345 $%... A"; //string okif (r.IsMatch(myString)) System.Console.Wri
我正在使用正则表达式检查字符串的正确性(我想允许字符A-Z,a-z,*,空格,–,&,%,.,/).我的代码是这样的:
Regex r = new Regex("^[A-Z0-9.$/+%- ]+$"); string myString = "ABCDEFGH 12345 $%... A"; //string ok if (r.IsMatch(myString)) System.Console.WriteLine("String alright!"); 这很有效,一切都很好.现在我只是想,也许我也可以处理非正确的字符串.我想用 – 替换字符串中的非正确(非正则表达式有效)字符.这可以用Regex.Replace完成.所以我做了这个: Regex r = new Regex("^[A-Z0-9.$/+%- ]+$"); string myString = "HELLO W?RLD ?~# 50.00$"; //?,?,~,# should be replaced by - if (r.IsMatch(myString)) System.Console.WriteLine("String alright!"); else myString = Regex.Replace(myString,r.ToString(),"-"); System.Console.WriteLine(myString); 那么这是行不通的!作为输出我得到: HELLO W?RLD ?~# 50.00$ 我错过了什么?问题是正则表达式对吗?我可以检查字符串是否正确,但我无法正确使用此正则表达式Regex.Replace函数.有没有办法使用1正则表达式来检查字符串是否有效并使用Regex.Replace? 解决方法
如果要(匹配和)替换与验证表达式中的字符不匹配的字符,则需要另一个表达式来专门匹配这些字符.例如:
[^A-Z0-9.$/+%- ] 可以用作: myString = Regex.Replace(myString,@"[^A-Z0-9.$/+%- ]","-"); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- actionscript-3 – 在AS3中,当值大于最大int时,getTimer()将
- SQLite3的API应用(续)
- C++对文本里面的大量数据进行排序(shell,c++,fopen,awk,se
- C错误C2143语法错误:缺少’;’在函数名之前
- flash设置HTTP_REFERER的尝试:失败
- Ioc容器-Autofac 之四-依赖注入框架Autofac的简单使用
- XML Parser Error on line 11: The string "--"
- ruby-on-rails – 如何在本地测试并发?
- c – to_string不是std的成员,g(mingw)说
- cocos2dx windows下隐藏边框(标题栏隐藏)