2017-10-18 21 views
3

thisの別の問題。 結合文字の一部を置換しようとすると、Perl 6はデフォルトで分割しません。s ///およびPerl 6の組み合わせ発音区別記号6

my $p_macron = "p" ~ 0x0304.chr; 
say $p_macron; # "p̄" 
(my $a_macron = $p_macron) ~~ s/p/a/; 
say $a_macron; # OOPS, again "p̄" 

どのように(一時的に)単一のUnicode記号ではなく、組み合わせたものと一致することができるように、このデフォルトのスイッチをオフにするには? bashでの処理方法は次のとおりです。

$ echo p̄ | sed 's/p/a/' 
ā 

答えて

4

sed、それがPerl 6のが適切1つの書記素としてそれを見て、一方0x<0070 0304>を見て、そのようなものとして扱いが与えられたときに、それはそうバイトで動作する、Unicodeのコードポイントでは動作しません。つまりs/p/a/pと一致しないため、絶対に何もしません。

あなたがしようとしている可能性がs:ignoremark/p/a/あなたaを与えているだろう(:m)、あなたに

+0

āを与えているだろう
またはs:samemark/p/a/:mm)何を '(:メートル)'と '(:ミリメートル)'平均?私は 's ///'の後に置くべきでしょうか? –

+0

ああ、それは副詞を書く別の方法だと思う。 –

関連する問題