在C#中使特定单词变为粗体

时间:2016-04-17 12:09:50

标签: c# asp.net

我想知道如何在文本标签中找到特定的单词并使它们变粗。

例如descriptionTxt.Text包含几个单词'Step 1:,Step 2:依此类推......

我想找到文字文本“Step”,然后是一个空格,然后是一个或多个数字,后跟一个冒号“并使其变为粗体。

C#代码

protected void Page_Load(object sender, EventArgs e)
            {
                string ID = Request.QueryString["id"];
                RecipeID.Text = ID;

                SqlConnection con = new SqlConnection(@"Data Source=(LocalDB)\v11.0; AttachDbFilename=C:\Users\Donald\Documents\Visual Studio 2013\Projects\DesktopApplication\DesktopApplication\Student_CB.mdf ;Integrated Security=True");
                con.Open();
                try
                {

                    SqlDataAdapter sda = new SqlDataAdapter("Select Recipe_Name, Recipe_Description, Recipe_Instructions FROM Recipe Where Recipe_ID= @recipeid", con);
                    sda.SelectCommand.Parameters.Add("@recipeid", SqlDbType.Int).Value = RecipeID.Text;
                    DataTable dt = new DataTable();
                    sda.Fill(dt);

                    if (dt.Rows.Count > 0)
                        nameTxt.Text = dt.Rows[0][0].ToString();
                    descriptionTxt.Text = dt.Rows[0][1].ToString();
                    instructionsTxt.Text = dt.Rows[0][2].ToString();

                    dt.Clear();

                }
                catch (Exception ex)
                {

                }

                con.Close();
            }

2 个答案:

答案 0 :(得分:2)

您描述的模式适合于正则表达式。

在这种情况下,表达式(Step [0-9]+:),意思是"文字文本"步骤",后跟一个空格,然后是一个或多个数字,后跟冒号&# 34;

var stepRegex = new Regex("(Step [0-9]+:)");

现在来&#34;大胆&#34;如你所知,你可以使用HTML,因为我们可以从你的ASP.NET标签中假设一个HTML上下文。这与使用<b></b>标记包装找到的值一样简单,使用$1来引用匹配的组。

string content = "Step 1: do something. Step 2: see step 1.";
string replaced = stepRegex.Replace(content, "<b>$1</b>");

这将产生"<b>Step 1:</b> do something. <b>Step 2:</b> see step 1."

另外,您不想将此HTML分配给Label控件,而是使用Literal。

答案 1 :(得分:-1)

descriptionTxt.Text = dt.Rows[0][1].ToString().Replace("Step1", "<b>Step1</b>");