基于开始/结束位置的字符串中的粗体选择性文本

时间:2013-04-02 06:34:26

标签: c# asp.net regex arrays string

在我的ASP.NET页面中,我有一个字符串(从SQL db返回)。我想根据给定的文本位置加粗字符串文本的某些部分。

例如,如果我有一个字符串如下:

"This is an example to show where to bold the text"

我得到角色开始位置:6和结束位置:7,然后我会在我的字符串中加粗“is”这个词,得到:

“此 是一个示例,用于显示文本的粗体位置”

有什么想法吗?

编辑:请记住,我需要使用开始/结束位置,因为字符串中可能有重复的单词。

4 个答案:

答案 0 :(得分:2)

您可以使用String.Replace方法。

  

返回一个新字符串,其中所有出现的指定字符串都在其中   当前实例将替换为另一个指定的字符串。

string s = "This is an example to show where to bold the text".Replace(" is ", " <b>is</b> ");
Console.WriteLine(s);

这是DEMO

由于您清除了所需内容,因此可以使用StringBuilder类。

string s = "This is an example to show where to bold the text";
var sb = new StringBuilder(s);
sb.Remove(5, 2);
sb.Insert(5, "<b>is</b>");
Console.WriteLine(s);

这是DEMO

注意 :由于您没有将<b>标记视为输出,因此并不意味着它们不存在;) < / p>

答案 1 :(得分:2)

  1. 将关闭标记插入字符串
  2. 的第7位
  3. 将开放标签插入字符串的位置5(6 - 1)。
  4. 您将获得一个字符串,例如“这示例......”
  5. 即。修改字符串(插入标记)从结束到开始:

    var result = str.Insert(7, "</b>").Insert(6 - 1, "<b>");
    

答案 2 :(得分:1)

首先在完整字符串中找到要替换的字符串 用<b>+replacestring+</b>

替换字符串
string str="This is an example to show where to bold the text";
string replaceString="string to replace"
str=str.Replace(replaceString,<b>+replaceString+</b>);

编辑1

string replaceString=str.Substring(6,2);
str=str.Replace(replaceString,<b>+replaceString+</b>);

SubString示例:
http://www.dotnetperls.com/substring

编辑2

int startPosition=6;
int lastPosition=7;
int lastIndex=lastPosition-startPosition+1;

string str="This is an example to show where to bold the text";
string replaceString=str.Substring(startPosition,lastIndex);
str=str.Replace(replaceString,<b>+replaceString+</b>);

答案 3 :(得分:1)

你需要做这样的事情......

**

strStart = MID(str, 0 , 7) ' Where 7 is the START position
str2Replace = "<b>" & MID(str, 8, 10) & "</b>" ' GRAB the part of string you want to replace
str_remain = MId(str, 11, Len(str)) ' Remaining string
Response.write(strStart  & str2Replace & str_remain )

**