这个正则表达式做了什么?我知道它取代了文件名(但不是扩展名)
Regex r = new Regex("(?<!\\.[0-9a-z]*)[0-9]");
return r.Replace(sz, "#");
如何让它重复5次?让它转换 “1111111111.000”至“11111 #####。000”?
答案 0 :(得分:2)
我还没试过这个,但 有尝试过,工作:如何更改常规模式以使用正向前瞻?这样,它应该工作:
[0-9a-z](?=[0-9a-z]{0,4}\.)
基本上,这会找到任何(字母数字)字符,后跟最多四个其他字母数字字符和一个句点。这可能只是连续匹配期间前面的最后五个字符。但它的效率低得离谱,它只适用于允许可变宽度超前模式的引擎。
答案 1 :(得分:0)
尝试将结束括号后的星号更改为“{5}
”(无引号)。这取决于您的正则表达式环境的功能集,但这是一种常见的语法。
答案 2 :(得分:0)
正则表达式匹配一个字符(0到9),该字符前面没有点,然后是0到9或a到z的任何数字。
替换线负责多次更换。所以你想使用具有extra parameter count的Replace方法。
所以代码看起来像:
Regex r = new Regex("(?<!\\.[0-9a-z]*)[0-9]");
return r.Replace(sz, "#", 5);