2011-06-15 45 views
0

我希望能夠從文件中獲取正則表達式的列表。我已經嘗試將正則表達式讀入char *或std :: string中,這沒有任何問題。但是,將它們轉換爲正則表達式證明是沒有用的,因爲數據類型不匹配。從文件中獲取正則表達式

大多數的網上資源,我發現創建的正則表達式像這樣的:

std::tr1::regex rx("regex expression here"); 

對不起,我也不能肯定的區別的:反對

std::tr1::regex rx = ("regex expression goes here"); 

std::tr1::regex rx("regex expression here"); 

我想知道是否有一種方法可以將任何類型的字符串數據類型轉換爲C++中的正則表達式。任何幫助表示讚賞。謝謝!

+1

定義「無果」。顯示你的錯誤。如果你可以從一個字符串文字構造一個'regex',你可以從'char const *'(yes'const',請進入這個習慣)或'std :: string'構造一個'regex'。另外,我修正了你的例子。 – 2011-06-15 16:43:12

+1

你能提供你試過的代碼碎片嗎?請注意,爲什麼諸如「分配」之類的東西不適用於您的說明:http://gcc.gnu.org/onlinedocs/libstdc++/libstdc++-html-USERS-4.3/a00878.html#360cff93aab9de0d81f206d724b1c695 – holtavolt 2011-06-15 16:43:32

+0

@ereOn @DumbCoder : 好一個。現在他剛剛走了,並接受了對他每個問題的任意回答。這真是幫助社區。 – 2011-06-15 16:48:57

回答

0

簡單地加載文件到一些char *(我假設你可以做到這一點)並將其傳遞給正則表達式。

+0

我想出了這個問題。我正在使用C函數fgets()從文件讀取正則表達式,它也會複製空字節。感謝Xirdus,我確定問題是在你的建議之後。 – user515751 2011-06-17 18:06:35