替换仅出现在字符串中间的子字符串

时间:2013-09-12 11:53:12

标签: c# regex

我想在C#中使用regx模式,它在任何只在中间的字符串中找到子字符串。让我们说,

Input : "toprohitpop rohittoppop toppoprohit" 

查找子字符串:"rohit"

替换为:"$$$$"

输出:"top$$$$pop rohittoppop toppoprohit"

如果子串“rohit”出现在字符串的左侧或右侧,那么它就不应该被替换。子串“rohit”只有当它出现在字符串的中间时才会被替换。

提前致谢。

3 个答案:

答案 0 :(得分:4)

使用非分词锚点:

\Brohit\B

只有\B位于单词的中间才会匹配。

Read about it.

答案 1 :(得分:1)

var input = "toprohitpop rohittoppop toppoprohit";
var regex = new Regex(@"\Brohit\B");
var output = regex.Replace(input, "$$$$$$$$");

请参阅Regular Expression Language中的“锚点”。

另外,请注意替换字符串中的'$'(参见注释)

答案 2 :(得分:-2)

使用以下正则表达式:.+rohit.+

基本上它在rohit之前至少有一个char,而在

之后