2016-04-17 5 views
2

Я хочу знать, как найти конкретные слова в текстовой метке и сделать их полужирным.Сделать конкретные слова жирным шрифтом в C#

Например descriptionTxt.Text содержит несколько слов «Шаг 1 :, Шаг 2: и так далее ...

Я хочу найти буквальный текст„Шаг“, а затем пробел, затем один или более цифр, за которым следует двоеточие»и сделать этот смелый.

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

_ «хочу найти их» _ - определить ** эти **. После того, как вы можете определить на английском языке слова, которые вы хотите смело, превратить это в код тривиально. – CodeCaster

+0

Что означает «и т. Д.», ** точно **? Пожалуйста, будьте конкретны. И что ты пробовал? Регулярное выражение типа «Шаг [0-9] +:« 'похоже, делает то, что вы хотите ... – CodeCaster

+0

@CodeCaster Не знаете, что означает и так далее? Его средства так далее и так четверо. Как и в списке. Шаг 1, Шаг 2, Шаг 3, Шаг 4, Шаг 5, Шаг 6, Шаг 7, и затем он продолжает, тем не менее, больше шагов. –

ответ

2

Образец, который вы описываете, поддается регулярному выражению.

В этом случае выражение (Step [0-9]+:), что означает «буквальный текст„Шаг“, а затем пробел, затем один или более цифр, за которым следует двоеточие»:

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

Теперь «сделать жирным шрифтом ", как вы просите, вы можете использовать HTML, поскольку мы можем предположить контекст HTML из вашего тега ASP.NET. Это так же тривиально, как обертывание найденного значения с помощью тегов <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.

+0

Итак, если бы я хотел сделать эту работу с descriptionTxt.Text, то я бы просто добавил content = descriptionTxt.Text? –

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

Хотя правильные ответы на Stack Overflow, как ожидается, содержат больше, чем просто код, что означает, что вы должны ** объяснить **, почему этот код будет работать и как его использовать. –

Смежные вопросы