我想知道如何在文本标签中找到特定的单词并使它们变粗。
例如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();
}
答案 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>");