正则表达式 - 替换除文件扩展名以外的所有点,特殊字符

ven*_*kat 4 c# regex

我想要一个正则表达式,以便用文件名的扩展名替换包含特殊字符和点(.)等的文件名和下划线(_).

帮我一个正则表达式

Luk*_*fer 6

试试这个:

([!@#$%^&*()]|(?:[.](?![a-z0-9]+$)))
Run Code Online (Sandbox Code Playgroud)

用不敏感的旗"i".用...来代替 '_'

第一批人物可以自定义,也可以使用\ W(任何非单词)

所以这读作:

替换为我匹配的'_'和此组的替换,或者不跟随某些字符或数字的句点和行尾

示例c#代码:

var newstr = new Regex("([!@#$%^&*()]|(?:[.](?![a-z0-9]+$)))", RegexOptions.IgnoreCase)
    .Replace(myPath, "_");
Run Code Online (Sandbox Code Playgroud)