簡體   English   中英

如何在C / C ++ PCRE正則表達式中使用UTF-8文字字符?

[英]How to use UTF-8 literal characters in a C/C++ PCRE Regex?

我們正在嘗試匹配德語字符串。

慕尼黑啤酒屋奧地利啤酒屋

我們能夠將其與PCRE正則表達式匹配,該正則表達式使用正向超前和一系列多個UTF-8代碼點。

例如, (?=.+(\\x{0068}\\x{00F6})){1}

但是,當我們將任何UTF-8文字öäç到PCRE正則表達式中時, pcre_compile()抱怨無效的UTF-8正則表達式字符串。

使用C / C ++ PCRE regex並激活PCRE_UTF8PCRE_UCPPCRE_CASELESS選項, PCRE_CASELESS選項使用UTF-8文字öäç使用UTF-8文字öäç的有效PCRE regex可能是什么?

PCRE開發人員Giuseppe D'Angelo 在pcre郵件列表上回答了我們的問題:

可能的,但你必須確保你的編譯器的執行字符集設置為正常輸出UTF-8序列。 是這樣嗎 嘗試獲取要傳遞給pcre_compile的字符串文字的十六進制轉儲(最終,嘗試查看匯編器輸出)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM