如果以前曾经问过这个问题,我很抱歉,我根本不知道如何用一种方式来表达它,以获得可用的结果。
我正在使用.net框架用字符串“查找和替换”字符串,但是使用反向引用技术将其包含在HTML标记中。
pText = Regex.Replace("aa", "aa likes bb", "<span class='cat'>$0</span>", RegexOptions.IgnoreCase)
这个工作正常,直到我想要替换的关键字已被替换为更大词的一部分。
例如 - using the keywords aa, bb, aabb
:
然而:
我以某种方式需要它来确定替换已经发生,并呈现为
答案 0 :(得分:0)
尝试在您要搜索的关键字周围使用字词边界。例如,正则表达式\baa\b
仅匹配文本aa likes aabb
中第一次出现的aa,而不是匹配它的两次出现。
答案 1 :(得分:0)
不完全确定这是否可以作为一个答案,但作为一个完整的问题,如果其他人在这里以同样的方式结束,我绝对会过度思考这个。
我没有调整任何正则表达式/代码,而只是应用了以下LESS / CSS规则。
.fa-metal(@Color){
background-color: @Color;
padding: 1px 4px;
border-radius: 4px;
border: 1px solid darken(@Color, 10%);
/*Ensure that a code inside a code will not be rendered*/
.fa-bronze, .fa-silver, .fa-gold {
background-color: transparent;
padding: 0;
border-radius: 0;
border: none;
}
}
这样,当一个类被双重替换时,只渲染最外面的跨度。 (HTML源码充斥着不必要的跨度,但我可以忍受这种情况)