私は値を比較するためにループする必要がある文書のページのID範囲を持っています。私の問題は、IDは文字列であり数字ではないので、Perlで範囲を試してみるとうまくいきません。私のレンジループの例と私のデータの例を示します。Perl Range String ID
foreach($begID..$endID){
print $_;
}
データの例では、
$begID = ABC-ABC-00001;
$endID = ABC-ABC-00100;
私の問題は、私はループこれらの値をすることはできませんあるでしょう。私は " - "に基づいてデータを分割し、00001と00100の値を得ることができますが、その問題はデータが私が扱っている別のファイルによって異なることがあることです。
誰かがこのことについてお伝えする他の方法はありますか?
UPDATE
私はここ(100担当者の下にあることに起因する他の7時間で)私自身の答えを投稿することができますまで、私が思いついたものです:ここ
オーケー、私のように何をしたかであります溶液。アルファベットに当たるまで、数字を正規表現から始めることができます。
($start) = $begID =~ m/(\d+)$/;
($end) = $endID =~ m/(\d+)$/;
次にループを作成します。
あなたはより多くの例入力を提供することができますか?文字は常に範囲(A〜C)ですか?彼らはまた、ループで増加しますか? – perreal
ここには、以下に示すいくつかの例があります。ABC-001 ABC001。そのABCは何でもかまいませんし、AB123AC123-0001のような数字を含んでいる可能性もあります。そして、値をループするときに文字を増やすべきではありません。 –
例えば、ABC1231AB001であってもよい。 –