派手なものの引用符を変更するには、引用符文字 ( ) の間の文字列をキャプチャする必要があるため"
、置換を作成しました。私のコード:
my $pk = qq|IV Baltic Sea NGO Forum "Challenges for Baltic Sea civil society"|;
$pk =~ s/"(\p{Word}+.?+)"/«$1»/g;
say $pk;
私は正規表現を次のように意味しました:
- 引用文字
- 少なくとも 1 つの単語 char が続く
- 任意の文字が続く
- 次の引用文字まで (貪欲でないキャプチャ)
引用符の間に単語以外の文字がある場合、キャプチャされません。なんで?
別の解決策も見つけましたが、正規表現が機能しない理由を理解したいのですが?