我正在C++上工作,我從xml文件中獲取正則表達式。我必須以長字符串搜索這個正則表達式。 例如我的正則表達式是:".+myFunction"
如何忽略boost :: regex_search()函數中的反斜槓字符?
所以,如果我必須把XML文件正則表達式的話,我需要在上述正則expresssion使用backslach
字符'\'
'.'
之前。 即"\.+myFunction"
現在我使用boost::regex_search()
函數來搜索上面的正則表達式。但由於額外的反斜槓字符,函數返回false。
那麼如何在使用boost::regex_search()
函數時忽略backlalach字符?
示例代碼如下:
string longString = "hdh::dfjdj::dfuhgj::myFunction.devide.and"
string regularExp = "\.+myFunction"
const boost::regex searchPattern(regularExp);
if(boost::regex_search(longString, searchPattern))
{
cout <<"Regular expresssion is found" << std::endl;
}
我認爲還有其他原因,'.'前面的單個反斜槓是沒有操作的。編譯器應該告訴過你。 – 2012-08-13 13:32:17
當您從XML讀取而不是修改正則表達式代碼時,應該刪除反斜槓。 – Lyth 2012-08-13 13:32:34
也許我們誤解了一些東西......爲什麼你需要在點之前使用反斜槓,如果你把它放到xml文件中? – 2012-08-13 13:34:09