我有一个字符串
"re\x{0301}sume\x{0301}"
(显示为 résumé),我想要将它反转成 "e\x{0301}muse\x{0301}r"
(émusér)。我无法使用Perl的reverse
函数来实现,因为它会把像"\x{0301}"
这样的组合字符当做独立的字符处理,导致最后结果变成了"\x{0301}emus\x{0301}er"
( ́emuśer)。那么怎样才能反转该字符串,同时还保持原有组合字符的正确顺序呢?
split
被反转了:它使用所需数据作为分隔符。空字符串是两个图形之间的内容。只有在结果中包含分隔符时,您才会将图形与“真实”结果混合在一起——一堆空字符串。另一种避免这种情况的替代方法(而且稍微快一些)是使用m//g
来捕获字形:join '', reverse $original =~ /(\X)/g
。 - Michael Carman