私はperlからコードを翻訳していますが、次の行に出くわしました
$text =~ s/([?!\.][\ ]*[\'\"\)\]\p{IsPf}]+) +([\'\"\(\[\¿\¡\p{IsPi}]*[\ ]*[\p{IsUpper}])/$1\n$2/g;
私の質問は、\p{IsPf} と \p{IsPi} が一致するのは何ですか? ネットで検索してみましたが、何も見つかりませんでした...
\p{..}
Unicode 文字プロパティによって文字を照合します: http://perldoc.perl.org/perlunicode.html#Unicode-Character-Properties
特に、\p{IsPf}
「最後の句読点」プロパティを\p{IsPi}
持つ文字と一致し、「最初の句読点」プロパティを持つ文字と一致します。これらは、ほとんどが引用符を閉じたり開いたりしているようです。
置換のポイントは、さまざまな種類の句読点で文が開始および終了する可能性があることを考慮して、文の終わりと文頭を一致させることによって文を別々の行に分割することのようです.
RegexBuddyに聞いてみましょう: これは Unicode 文字プロパティです。