2013-10-28 2 views
1

Моя программа получает конфигурацию от comandline. comandline выглядит так: "mapPath = Some_Path_Over_Here \ npluginsPath = Other_Path_Over_Here \ n" обратите внимание на "\ n" в середине и в конце.QRegex not identifing " 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, так и для окон. Я думаю, что причиной проблемы является «\ n». Я не знаю, как с этим справиться. Помоги пожалуйста?

+0

Вы пытаетесь сопоставить строки, содержащие 'Dir', в то время как строка вашего примера имеет« Путь ». Это опечатка? – arne

+0

да жаль .. я это исправлю – kakush

ответ

0

config содержит два символа перевода строки (ASCII 0x0A, написанный в литералов C++, как \n), но вы пытаетесь сопоставить их с регулярным выражением \n (двух символов, ASCII 0x5C 0x6E, написанный в литералов C++, как \\n) , Это не сработает - измените регулярное выражение только на \n.

Имейте в виду, что превращение \n в символ новой строки - это работа синтаксического анализатора C++; регулярные выражения этого не делают.