我有喜歡尋找C++正則表達式任選包含空格
"<firstname>Anna</firstname>"
或
"<firstname>Anna Lena</firstname>"
一個字符串,我想用正則表達式來獲取的名字給它(所以纔有「安娜「或」Anna Lena「)。目前我使用:
std::regex reg1 ("(<firstname>)([a-zA-Z0-9]*)(</firstname>)");
和
std::regex_replace (std::back_inserter(result), input.begin(), input.end(), reg1, "$2");
與只有一個名字效果很好,但顯然它之後錯過任何東西,因爲它沒有考慮空格。現在我已經嘗試添加\s
像((([a-zA-Z0-9]*)|\s)*)
但我的IDE(Qt)告訴我,那\s
是一個未知的轉義序列。 現在,"<firstname>Anna Lena</firstname>"
結果爲"<firstname>Anna"
。
如何以優雅的方式解決這個問題?
'的std ::正則表達式REG1(「()([A-ZA-Z0-9 \\秒] *) ( )「);'或'std :: regex reg1(R」(()([a-zA-Z0-9 \ s] *)( ))「);' –
結果保持不變。 – Saftkeks
[這裏](https://ideone.com/fHdqn7)它運行良好。我從firstname標籤中刪除了捕獲組,並獲得了match [1]組1的值。爲什麼在使用'std :: regex'的時候提到Qt?你到底在用什麼?請分享完整的相關代碼 –