Regex 这个正则表达式是如何工作的?我如何使它只重复5次?

Regex 这个正则表达式是如何工作的?我如何使它只重复5次?,regex,Regex,这个正则表达式做什么?我知道它会替换文件名(但不是扩展名) Regex r=new Regex(“(?尝试将右括号后的星号更改为“{5}”)(无引号)。这取决于Regex环境的功能集,但这是一种常见语法。Regex匹配的字符(0到9)前面没有点,前面没有任何数字0到9或a到z replace行负责多次替换。因此,您希望使用replace方法 所以代码看起来像: Regex r = new Regex("(?<!\\.[0-9a-z]*)[0-9]"); return r.Replace

这个正则表达式做什么?我知道它会替换文件名(但不是扩展名)


Regex r=new Regex(“(?尝试将右括号后的星号更改为“
{5}
”)(无引号)。这取决于Regex环境的功能集,但这是一种常见语法。

Regex匹配的字符(0到9)前面没有点,前面没有任何数字0到9或a到z

replace行负责多次替换。因此,您希望使用replace方法

所以代码看起来像:

 Regex r = new Regex("(?<!\\.[0-9a-z]*)[0-9]");
 return r.Replace(sz, "#", 5);
Regex r=new Regex(“(?我还没有试过,但已经试过,有效:如何改变常规模式,改为使用正向前瞻?这样,它应该可以工作:

[0-9a-z](?=[0-9a-z]{0,4}\.)

基本上,这会查找任何(字母数字)字符,后跟最多四个其他字母数字字符和一个句点。这可能只是为了连续匹配句点前面的最后五个字符。但效率极低,而且它只适用于允许可变宽度前瞻模式的引擎。

,这就打破了它(ext现在变成了#####)。这是用来做什么的?知道它是如何使用的会有所帮助。未经测试,但这实际上应该替换前5位数字,从而为您提供“#####1111.000”,这不是您想要的。因此,使用康拉德的解决方案。
[0-9a-z](?=[0-9a-z]{0,4}\.)