Thi*_*kel 4 regex perl locale internationalization
我目前有点卡在Perl中的正则表达式(取自我之前的一个问题)来匹配非ASCII语言环境中的单词字符(即德语变音符号).
我已经尝试了各种各样的事情,比如设置正确的语言环境(使用setlocale),将我从MySQL收到的数据转换为UTF8(使用decode_utf8),等等......不幸的是,无济于事.谷歌也没多大帮助.
是否有机会获得以下正则表达式语言环境
$street = "Täststraße"; # I know that this is not orthographically correct
$street =~ s{
\b (\w{0,3}) (\w*) \b
}
{
$1 . ( '*' x length $2 )
}gex;
Run Code Online (Sandbox Code Playgroud)
最终回来$street = "Täs*******"而不是"Tästs***ße"?
我希望正则表达式导致"Täs*******".这就是我在上面的代码中使用utf-8编码文件"使用utf8"时得到的结果.
(如果一切都是latin-1,那就会改变正则表达式引擎的行为.因此存在utf8::upgrade.请参阅Unicode :: Semantics.)
编辑:我看到你修复了你的帖子,我们同意预期的结果.基本上,当你想在regexp上使用Unicode语义时,请使用Unicode :: Semantics.
| 归档时间: |
|
| 查看次数: |
1268 次 |
| 最近记录: |