2013-11-27 69 views
-3

我的字符串有問題。我不知道它有什麼問題。我只是想讓它在RTB中改變顏色。每當我在RTB中輸入「accesskey =」或「data-blablabla-blabla =」(不帶引號)時,代碼的顏色仍然是黑色。正則表達式似乎不起作用

我的代碼:

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

這與字符串有什麼關係?也許正則表達式標題更適合你的問題 –

+0

你確定正則表達式匹配任何東西嗎? –

回答

2

按照Regular Expression Language Quick Reference\b是退格字符,我嚴重懷疑你會在你的文本找到。結果,你的正則表達式永遠不會匹配任何東西。

如果要與空白匹配,請使用\s

+0

謝謝您的回覆先生,但它不工作先生。當我嘗試刪除字符串中的等號時,一切正常。這就是爲什麼我認爲我的字符串有問題或者我需要添加\? – Hafiz

+0

感謝Panagiotis Kanavos!閱讀您已鏈接的頁面。問題是\ b就像你所說的。 – Hafiz