加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

regex – Locale-aware Perl正则表达式(匹配单词边界)

发布时间:2020-12-16 06:21:50 所属栏目:大数据 来源:网络整理
导读:我目前有点卡在Perl中的正则表达式(取自我的 earlier question)来匹配非ASCII语言环境中的单词字符(即德语变音符号). 我已经尝试了各种各样的事情,比如设置正确的语言环境(使用setlocale),将我从MySQL收到的数据转换为UTF8(使用decode_utf8),等等……不幸的
我目前有点卡在Perl中的正则表达式(取自我的 earlier question)来匹配非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;

最终返回$street =“T?s*******”而不是“T?sts***”“?

解决方法

我希望正则表达式导致“T?s*******”.这就是我在上面的代码中使用utf-8编码文件“使用utf8”时得到的结果.

(如果一切都是latin-1,那就改变了正则表达式引擎的行为.因此存在utf8 :: upgrade.见Unicode::Semantics.)

编辑:我看到你修复了你的帖子,我们同意预期的结果.基本上,当你想在regexp上使用Unicode语义时,请使用Unicode :: Semantics.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读