[英]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_UTF8
, PCRE_UCP
, PCRE_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.