をそれはあなたが望むものは非常に明確ではないですが、数字を分割することは、何かを達成するための貧弱なアプローチのように思えます。
少なくとも、レコードごとの変更やレコードごとの情報の抽出を行いたいので、データをレコードに分割するほうがずっと良いでしょう。各レコードは、空白行で区切られているので、我々が使用することができます
my @items = split /\n\n/, $info;
これが与える:
my @items = (
"8. 9 Run\n Keywords :- RUN;",
" 9. 10 spreadshee\n Keywords :- spreadsheet;",
" 10. 11 Book\n Keywords :- Book;",
" 11. 15 Hide\n Keywords :- Hide;",
" 12. 132 Pick\n Keywords :- Pick;",
);
を今、あなたが数字を削除したいようです。
s/^\s*\K\d+\.\s*// for @items; # Preserves the leading whitespace.
s/^\s*\d+\.\s*// for @items; # Removes the leading whitespace.
後者は与える:
my @items = (
"9 Run\n Keywords :- RUN;",
"10 spreadshee\n Keywords :- spreadsheet;",
"11 Book\n Keywords :- Book;",
"15 Hide\n Keywords :- Hide;",
"132 Pick\n Keywords :- Pick;",
);
あなたはこれが与える
$info = join("\n\n", @items);
を使用して$info
マイナスの数字を再構築することができます:
9 Run
Keywords :- RUN;
10 spreadshee
Keywords :- spreadsheet;
11 Book
Keywords :- Book;
15 Hide
Keywords :- Hide;
132 Pick
Keywords :- Pick;
をこれが応答しない場合きみのあなたの例からどのような出力が期待されるのかを明確にしてください。
'my @captures = $ info =〜m/^ \ s *(\ d + \。)/ mg;' – DavidO
私はよくわかりません - あなたは '8.'(など)を分割したいですか?言い換えれば、最後に '9 ... Run'(等)をしたいのですか? 9. ...(等)? – zdim
何を試しましたか?これらの投稿は最近、スコアが低く、実行時の努力が実証されていません。言語を実装する方法を示す言語文書があります。これは、あなたのためにあなたの仕事をやる人を手に入れようとするようなものです。 – vol7ron