替换/删除与正则表达式 (.NET) 不匹配的字符
我有一个正则表达式来验证字符串。但现在我想删除所有与我的正则表达式不匹配的字符。
例如,
regExpression = @"^([\w\'\-\+])"
text = "This is a sample text with some invalid characters -+%&()=?";
//Remove characters that do not match regExp.
result = "This is a sample text with some invalid characters -+";
关于如何使用 RegExpression 来确定有效字符并删除所有其他字符的任何想法。
非常感谢
I have a regular expression to validate a string. But now I want to remove all the characters that do not match my regular expression.
E.g.
regExpression = @"^([\w\'\-\+])"
text = "This is a sample text with some invalid characters -+%&()=?";
//Remove characters that do not match regExp.
result = "This is a sample text with some invalid characters -+";
Any ideas of how I can use the RegExpression to determine the valid characters and remove all the other ones.
Many thanks
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
我相信你可以在一行中完成此操作(将字符列入白名单并替换其他所有内容):
从技术上讲,它将产生以下结果:
“这是包含一些无效字符 - + 的示例文本”
这与您的示例略有不同(- 和 + 之间的额外空格)。
I believe you can do this (whitelist characters and replace everything else) in one line:
Technically it will produce this:
"This is a sample text with some invalid characters - +"
which is slightly different than your example (the extra space between the - and +).
就这么简单:
删除不匹配的字符与保留匹配的字符相同。这就是我们在这里所做的。
如果表达式可能在文本中匹配多次,您可以使用:
Simple as that:
Removing the non-matched characters is the same as keeping the matched ones. That's what we are doing here.
If it is possible that the expression matches multiple times in your text, you can use this:
感谢如果不匹配则替换字符我创建的答案一个去除不接受字符的辅助方法。
允许的模式应采用正则表达式格式,期望它们包含在方括号中。函数将在打开方括号后插入波浪号。
我预计它不适用于描述有效字符集的所有正则表达式,但它适用于我们正在使用的相对简单的集。
我的 StringHelper 类中有几个函数 http://geekswithblogs。网/mnf/archive/2006/07/13/84942.aspx,
这里使用的。
Thanks to Replace chars if not match answer I've created a helper method to strips unaccepted characters .
The allowed pattern should be in Regex format, expect them wrapped in square brackets. A function will insert a tilde after opening squere bracket.
I anticipate that it could work not for all RegEx describing valid characters sets,but it works for relatively simple sets, that we are using.
There are a couple of functions from my StringHelper class http://geekswithblogs.net/mnf/archive/2006/07/13/84942.aspx ,
that are used here.