16

私はこれまでPerlを使用したことがなく、基本的な質問があります。

 my $string1 = "Hi. My name is Vlad. It is snowy outside.";

 my @array = split('.' $string1); ##essentially I want this, but I want the period to be kept

この文字列を「。」で分割したい しかし、私はその期間を維持したいと思います。これはどのように達成できますか?

4

2 に答える 2

26

これを行うには、lookbehindを使用できます。

split(/(?<=\.)/, $string)

正規表現は、ピリオドに続く空の文字列と一致します。

文の間の空白を同時に削除したい場合は、次のように変更できます。

split(/(?<=\.)\s*/, $string)

ポジティブとネガティブの後ろ姿はここで説明されています

于 2013-02-16T07:02:24.273 に答える
12

ピリオドが配列内の独自の要素に分割されてもかまわない場合は、括弧を使用して、ピリオドを保持するようにsplitに指示できます。

my @array = split(/(\.)/, $string);
于 2013-02-16T06:53:58.357 に答える