2011-09-18 83 views
0

我正在用C++編寫Python語言的IDE,並且已經爲Python語言語法編寫了語法高亮器。但我有兩個問題:語法突出顯示的問題

  1. 我的正規表達模式爲highkighting數字是'\ d +'。它在代碼中強調無處不在。例如它在'Qt4'中突出顯示'4',我希望它在這種情況下不突出顯示數字。對於兩者之間highkighting串

  2. 我的正則表達式模式'「爲‘\‘* \’’。它的工作原理,但有一個問題。 甚至突出案件「‘一些text1’中的一些text2「中的一些文字3 「」我想它不會 亮點‘一些文本2’。

什麼是這兩個問題的解決方案?

+1

突出顯示21世紀正則表達式的語法?廢話! Python是一種非常簡單的語言,所以它確實值得實現一個正確的,語義感知的解析器。 –

+0

@ SK-邏輯或者更好的,使用Python源代碼來解析代碼。 – 2011-09-18 14:08:00

回答

1

正如評論已經提到它可能不適合使用常規的表達式來解析語言。

關於你提到的兩個問題:

  1. 您可以通過使用單詞邊界規避這種行爲:\b\d+\b
  2. 讓你表達非貪婪:\".*?\"

注:前面已經提到的那些只是解決方法並且在任何情況下可能都不正確。

+0

我測試過模式'\ b \ d + \ b',但它會導致純數字字符串不被突出顯示! –