Csharp/C#教程:为什么我的Regex.Replace字符串包含两次替换值?分享


为什么我的Regex.Replace字符串包含两次替换值?

我有以下字符串: aWesdE ,我想使用Regex.Replace(string, string, string, RegexOptions)转换为http://myserver.com/aWesdE.jpg

目前,我使用此代码:

 string input = "aWesdE"; string match = "(.*)"; string replacement = "http://myserver.com/$1.jpg"; string output = Regex.Replace(input, match, replacement, RegexOptions.IgnoreCase | RegexOptions.Singleline); 

结果是输出结果如下: http://myserver.com/aWesdE.jpghttp://myserver.com/.jpghttp://myserver.com/aWesdE.jpghttp://myserver.com/.jpghttp://myserver.com/aWesdE.jpghttp://myserver.com/.jpg

因此,替换值正确显示,然后似乎再次附加 – 非常奇怪。 这里发生了什么?

您的正则表达式中实际上有2个匹配项。 你定义了这样的匹配:

 string match = "(.*)"; 

它表示匹配零个或多个字符,因此您有2个匹配项 – 空字符串和您的文本。 为了修复它,将模式更改为

 string match = "(.+)"; 

这意味着匹配一个或多个字符 – 在这种情况下,您将只获得一个匹配

上述就是C#学习教程:为什么我的Regex.Replace字符串包含两次替换值?分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请点击右边联系管理员删除。

如若转载,请注明出处:https://www.ctvol.com/cdevelopment/1025365.html

(0)
上一篇 2022年1月8日
下一篇 2022年1月8日

精彩推荐