2013-11-27 4 views
-3

У меня проблема с моей строкой. Я не знаю, что с этим не так. Я просто хочу изменить цвет в RTB. Всякий раз, когда я вводил «accesskey =» или «data-blablabla-blabla =» (без кавычек) в своем RTB, цвет кода по-прежнему остается черным.Регулярное выражение, похоже, не работает

Мой код:

private void richTextBox1_TextChanged(object sender, EventArgs e) 
{ 
    string attributes = @"\b(accesskey=|\data\-.+?\=)\b"; 
    MatchCollection attributeMatches = Regex.Matches(richTextBox1.Text, attributes); 

    foreach (Match m in attributeMatches) 
    { 
     richTextBox1.SelectionStart = m.Index; 
     richTextBox1.SelectionLength = m.Length; 
     richTextBox1.SelectionColor = Color.Red; 
    } 
+0

Вы пробовали отладки? – BartoszKP

+0

как это связано со строками? Возможно, название Regex будет лучше соответствовать вашему вопросу. –

+0

Вы уверены, что регулярное выражение соответствует чему-либо? –

ответ

2

Согласно Regular Expression Language Quick Reference\b является забой характер, который я серьезно сомневаюсь, что вы найдете в вашем тексте. В результате ваше регулярное выражение никогда не будет соответствовать чему-либо.

Если вы хотите, чтобы соответствовать против пробелов используйте \s

+0

Спасибо за ваш ответ, но он не работает сэр. Когда я пытаюсь удалить знак равенства в строке, все работает хорошо. Вот почему я думаю, что что-то не так с моей строкой или, может быть, мне нужно добавить \? – Hafiz

+0

Спасибо Panagiotis Kanavos! Прочитайте страницу, с которой вы связались. Проблема была \ b как то, что вы сказали. – Hafiz

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