2012-05-02 119 views
0

我想在c/C++中使用regex.h使用正則表達式。 我試圖用前瞻的選項,例如:C正則表達式支持lookahead嗎?

(?=>#).* 

爲了一個「#」

出於某種原因,無法找到任何匹配後提取的字符串。 regex.h支持lookahead/lookbehind?有我可以使用的另一個圖書館嗎?

我在linux上使用regex.h。

+2

考慮到C和C++都不支持正則表達式的本地支持,您應該讓我們知道您正在使用哪個庫(並且當您這樣做時,首先查看該庫的文檔)。 –

+2

爲什麼首先使用lookahead呢?我認爲使用像#(。*)這樣的組合將是更常見的方法。 – FatalError

回答

1

我很確定NSRegularExpression只是libicu的包裝,它支持lookaheads。您的示例中有一個錯字,根據鏈接,正確的語法是(?=#).*

雖然這並不是真的需要,但爲什麼不是#.*

1

我懷疑這是真的看你在說什麼,而不是向前看。那將是(?<=#).*,但爲什麼這麼複雜?爲什麼不像其他應答者所建議的那樣使用#(.*),並將所需的文本從捕獲組中提取出來?

另外,你真的使用NSRegularExpression?這看起來不太可能,因爲它是Apple iOS/MacOS開發者框架中的一個Objective-C類。

+0

提到的原始問題'NSRegularExpression'; OP稍後編輯它。 –