c# - 用C#替换字符串中的数字

标签 c# regex filenames

我以为我做一个正则表达式替换

Regex r = new Regex("[0-9]"); 
return r.Replace(sz, "#");

在名为 aa514a3a.4s5 的文件上。它完全符合我的预期。它替换所有号码,包括分机号中的号码。我如何让它不替换分机中的数字。我尝试了许多正则表达式字符串,但我开始认为它是一个全有或全无的模式,所以我不能这样做吗?我需要将分机与字符串分开还是可以使用正则表达式?

最佳答案

这个是为我做的:

(?<!\.[0-9a-z]*)[0-9]

这会在句点后跟零个或多个字母数字字符进行负向后视(字符串不得出现在匹配的字符串之前)。这可确保仅匹配不在您的分机中的号码。

显然,[0-9a-z] 必须替换为您在扩展名中期望的字符。

关于c# - 用C#替换字符串中的数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/713435/

相关文章:

sql - 如何使用 SQL 替换字符串末尾的子字符串?

python - 模式 : Python Regex 的意外结束

javascript - 检查值是否具有给定字符 - RegEx

c++ - 作为文件名路径的第一个参数是什么意思?

c# - 如何在 C# 中生成一个包含 3 个字母和 6 个数字的随机字母数字数组?

c# - 在经典 ASP 上构建 .net 应用程序

c# - 如何检查代码文件的有效性?

c# - 如何在C#中将arraylist转换为整数数组

security - Rust 中是否有安全/清理过的文件名函数

Linux:如何从包含原始模式和新模式的文件中替换文件名?