繁体   English   中英

Regex.Replace不替换整个字符串而是替换字符串中的char

[英]Regex.Replace not replacing the whole string instead replacing chars in string

我的代码如下:

ArticleContent = Regex.Replace(_article.Article, "[QUOTE]", "<p class='quote'><span style='font-size:1.8em !important;'>" + _article.NewFields.Quotes + "</span></p>", RegexOptions.IgnoreCase);

我在这里面临的问题是,正则表达式不能替换整个字符串'[QUOTE]'。 相反,它正在搜索字母q,u,o,t,e并将其替换为替换字符串。 我知道问题是由于方括号引起的,但我也希望将其替换。 请帮忙。

使用非捕获组将所有出现的字符串QUOTE替换为所需的字符串,

(?:QUOTE)

所以你的代码应该是

ArticleContent = Regex.Replace(_article.Article, "(?:QUOTE)", "<p class='quote'><span style='font-size:1.8em !important;'>" + _article.NewFields.Quotes + "</span></p>", RegexOptions.IgnoreCase);

要么

如果要用其他字符串替换[QUOTE] ,请尝试转义方括号,因为正则表达式中的suare括号具有特殊含义。

\[QUOTE\]

您的代码应该是

ArticleContent = Regex.Replace(_article.Article, "\[QUOTE\]", "<p class='quote'><span style='font-size:1.8em !important;'>" + _article.NewFields.Quotes + "</span></p>", RegexOptions.IgnoreCase);

您必须转义方括号! 并且不要忘记REGEXP区分大小写。 这是我对您的代码的更正:

ArticleContent = Regex.Replace(_article.Article, "\[quote\]", "<p class='quote'><span style='font-size:1.8em !important;'>" + _article.NewFields.Quotes + "</span></p>", RegexOptions.IgnoreCase);

顺便说一句,我在方括号中看不到任何“引号”的字眼,因此我不确定我是否知道您要执行的操作...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM