2013-10-28 92 views
1

我的程序從comandline獲取配置。 comandline是這樣的: 「mapPath = Some_Path_Over_Here \ npluginsPath = Other_Path_Over_Here \ n」 請注意中間和最後的「\ n」。QRegex不能識別「 n」

我COSE是:

QString config("mapPath=Some_Path_Over_Here\npluginsPath=Other_Path_Over_Here\n") 
QRegExp reg("mapPath=(.*)\\npluginsDir=(.*)\\n"); 

,但是當我寫

reg.indexIn(config) 

結果是-1。

重要的是要說我的程序既適用於linux也適用於windows。 我認爲是什麼導致問題是「\ n」..我不知道如何處理它。請幫助?

+0

當您的示例字符串具有「路徑」時,您嘗試匹配包含'Dir'的字符串。這是一個錯字嗎? – arne

+0

對不起。我會修復它 – kakush

回答

0

config包含兩個換行字符(ASCII 0x0A,用C++寫的文字作爲\n),但你要配合他們對正則表達式\n(兩個字符,ASCII 0x5C 0x6E,用C++編寫文字爲\\n) 。這是行不通的 - 將正則表達式更改爲\n

請記住,將\n轉換爲換行符charcter是C++解析器的工作;正則表達式不這樣做。