c# - C# - 正则表达式 - 替换不匹配的字符
问题描述
[有类似的问题,但没有一个能满足我的需要]
我允许用户输入匹配此正则表达式的文本:
string validChars = @"^[A-Za-zÀ-ÖØ-öø-ÿ0-9\s\.\-\&\,\'\(\)_\/\""\!\:\%]*?$";
我想要做的是删除与该正则表达式不匹配的字符
我怎样才能反转正则表达式,所以我可以做
invalidChars = some_trick_to_invert_regex(validChars);
text = Regex.Replace(text, invalidChars , "");
感谢您的帮助
解决方案
您可以通过将括号放在括号内来将要保留的字符列入白名单^
。例子:
string validChars = @"[^A-Za-zÀ-ÖØ-öø-ÿ0-9\s\.\-\&\,\'\(\)_\/\""\!\:\%]";
string test = "abc#de";
var result = Regex.Replace(test, validChars, ""); //abcde
推荐阅读
- linux - 用于按比特率对 mp3 文件进行排序的 Bash 脚本
- haskell - 函数中的非详尽模式 [Haskell]
- javascript - 反应 axios 形式
- sql - Hibernate:由于不寻常的映射,分页查询抛出“不明确的列异常”
- javascript - 如何将 `cv.Mat()` 的大小设置为等于视频的大小?
- node.js - 无法更新 mongodb 中的单个数据
- php - Visual Studio Code 中的 PHP Intelelephene
- javascript - 如何在带有填充颜色的折线图上添加带中断的区域
- python-3.x - 如何在不使用循环的情况下打印列表中的特定项目
- java - 当我删除字段时,Firestore EventListener 导致 Null 异常