0
Perl文字列から最後の5つの連続番号を取得し、そのシーケンスを直ちに続行する3文字を取得する方法を教えてください。たとえば、文字列が "これは、00000のDomテキストを実行したばかりの束であり、11111の意味はありません。"それから私は "11111"と "いいえ"を得たいでしょう。Perlテキストと3つの先行する文字から最後の5つの連続番号を取得
Perl文字列から最後の5つの連続番号を取得し、そのシーケンスを直ちに続行する3文字を取得する方法を教えてください。たとえば、文字列が "これは、00000のDomテキストを実行したばかりの束であり、11111の意味はありません。"それから私は "11111"と "いいえ"を得たいでしょう。Perlテキストと3つの先行する文字から最後の5つの連続番号を取得
正規表現を使用します任意の数字
{5}
は以前のものは5回()
括弧は、キャプチャグループに.
マッチ任意の文字を作成して一致させる必要があります意味 #! /usr/bin/perl
use warnings;
use strict;
use feature qw{ say };
my $string = 'This is just a bunch of ran 00000 Dom text. It has no 11111 meaning.';
my ($pre, $digits) = $string =~ /.*(...)([0-9]{5})/;
say "<$pre>\t<$digits>";
[0-9]
試合を(excpet newline)*
は、前のものが可能な限りゼロ回以上一致することを意味します。したがって.*
は、文字列から可能な限り一致させて、00000の一致を防ぎます。文字列に改行が含まれている場合はおそらく '/ s'が必要です(明示的にするには' \ A'かもしれません)。 – melpomene
「連続番号」とはどういう意味ですか? – choroba
あなたはすでに頭の上に釘を持っていますが、間にスペースや文字がない数字を意味しています...例えば82649は5つの連続した数字のセットです...私の例は明確ではありませんでしたので、明確な質問。 – Padawan