我想獲取文件之間的引號內容,我正在使用正則表達式。這是我使用正則表達式:正則表達式工作正則表達式測試儀,但不是在c + +
id=\"([^\"]+)\"|title=\"([^\"]+)\"
正如你可以看到,每一個特殊字符轉義。它在正則表達式測試程序中很好地工作,但是在C++代碼中使用時找不到標題。身份證總是沒問題。我嘗試了好幾種變化,以及它甚至去掉一半(前|)
id="60973129" title="EPA"
這是我使用的C++代碼:
std::regex rgx("id=\"([^\"]+)\"|title=\"([^\"]+)\"");
std::smatch match;
if (std::regex_search(line, match, rgx)) {
for (int i=0; i < match.size(); ++i) {
std::cout << match[i];
}
}
編輯:我發現,如果單獨的放title=\"(.+?)\"
確實有效,但之後我必須使用幾個正則表達式,這會破壞我的目的,因爲我需要稍後掃描更長的行。
你可以顯示代碼實際使用的地方嗎? – JBL 2013-05-07 14:19:27
用代碼編輯。 – 2013-05-07 14:22:29
這不是問題,但可以通過使用非貪婪重複來簡化。代替'\「([^ \」] +)\「'try'\」(。+?)\「' – 2013-05-07 14:27:02