试试这个:
([!@#$%^&*()]|(?:[.](?![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)