Моя программа получает конфигурацию из командной строки. командная строка такая:
«mapPath = Some_Path_Over_Here \ npluginsPath = Other_Path_Over_Here \ n» обратите внимание на «\ n» в середине и в конце.
мой козел это:
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» .. Я не знаю, как справиться с этим. Помогите, пожалуйста?
config
содержит два символа перевода строки (ASCII 0x0A
, написанный на литералах C ++ как \n
), но вы пытаетесь сопоставить их с регулярным выражением \n
(два символа, ASCII 0x5C 0x6E
, написанный на литералах C ++ как \\n
). Это не может работать — измените регулярное выражение на просто \n
также.
Имейте в виду, что поворот \n
в символ новой строки — работа синтаксического анализатора C ++; регулярные выражения не делают этого.
Других решений пока нет …