【发布时间】:2017-04-28 16:51:01
【问题描述】:
我正在尝试使用 RegEx 替换字符串,但没有任何内容被替换。我不确定我做错了什么。
System.Text.RegularExpressions.Regex regEx = null;
regEx = new System.Text.RegularExpressions.Regex("DefaultStyle.css?x=839ua9");
pageContent = regEx.Replace(htmlPageContent, "DefaultStyleSnap.css?x=742zh2");
htmlPageContent 是 string 类型,包含 Render 方法的 html 页面内容(在发送到浏览器之前写入)。 htmlPageContent 字符串肯定包含“DefaultStyle.css?x=839ua9”。当我在 Visual Studio 中进行快速观看以及查看页面源时,我可以看到它。
为什么 RegEx 没有替换字符串?
【问题讨论】:
-
?是一个特殊字符。你不应该使用正则表达式。 -
如果您需要将文字传递给正则表达式模式,请使用
Regex.Escape("DefaultStyle.css?x=839ua9")。 -
您正在执行直接替换。为什么要使用正则表达式?我建议只使用内置字符串
Replace函数。