7

私はperlからコードを翻訳していますが、次の行に出くわしました

$text =~ s/([?!\.][\ ]*[\'\"\)\]\p{IsPf}]+) +([\'\"\(\[\¿\¡\p{IsPi}]*[\ ]*[\p{IsUpper}])/$1\n$2/g;

私の質問は、\p{IsPf} と \p{IsPi} が一致するのは何ですか? ネットで検索してみましたが、何も見つかりませんでした...

4

3 に答える 3

12

\p{..}Unicode 文字プロパティによって文字を照合します: http://perldoc.perl.org/perlunicode.html#Unicode-Character-Properties

特に、\p{IsPf}最後の句読点」プロパティを\p{IsPi}持つ文字と一致し、「最初の句読点」プロパティを持つ文字と一致します。これらは、ほとんどが引用符を閉じたり開いたりしているようです。

置換のポイントは、さまざまな種類の句読点で文が開始および終了する可能性があることを考慮して、文の終わりと文頭を一致させることによって文を別々の行に分割することのようです.

于 2013-06-04T11:15:28.187 に答える
10

RegexBuddyに聞いてみましょう: これは Unicode 文字プロパティです。

RegexBuddy スクリーンショット

Unicode 文字のプロパティと Unicode スクリプトに関するその他のドキュメントは、こちら にあります。

于 2013-06-04T11:15:19.160 に答える