1

我们正在尝试匹配德语字符串。

慕尼黑 tausendschöne Jungfräulein ausendschçne

我们能够将其与 PCRE 正则表达式匹配,该正则表达式使用正向前瞻和多个 UTF-8 代码点序列。

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

但是,当我们在 PCRE 正则表达式中添加任何 UTF-8 文字时ö,会抱怨 UTF-8 正则表达式字符串无效。äçpcre_compile()

使用 C/C++ PCRE 正则表达式,激活使用 UTF-8 文字的 , , 选项,PCRE_UTF8, PCRE_UCP, ,什么可能是使用 UTF-8 文字or的有效 PCRE 正则表达式PCRE_CASELESSöäçöäç

4

1 回答 1

0

PCRE 开发人员 Giuseppe D'Angelo在 pcre 邮件列表中回答了我们的问题:

可能的,但您必须确保将编译器的执行字符集设置为正确输出 UTF-8 序列。是这样吗?尝试获取您传递给 pcre_compile 的字符串文字的十六进制转储(最终,尝试查看汇编器输出)。

于 2012-06-30T08:08:13.203 回答