私はperlを使い慣れています。私は単語からD[number]
を抽出しなければならないシナリオを見つけました。単語からパターンを抽出する方法
例: 入力文字列がD11C1
であれば、入力文字列がD1C12
場合、D11
はD1
を抽出しなければならない、
抽出されるべきです。
私はperlを使い慣れています。私は単語からD[number]
を抽出しなければならないシナリオを見つけました。単語からパターンを抽出する方法
例: 入力文字列がD11C1
であれば、入力文字列がD1C12
場合、D11
はD1
を抽出しなければならない、
抽出されるべきです。
次のようなものを使用可能性があります
$word =~ /.*(D\d+).*/;
my $res = $1;
を\ D + - 少なくとも一つの数字と一致します。
正規表現を使用します。
#!/usr/bin/perl
use warnings;
use strict;
use feature qw{ say };
for my $string (qw(D11C1 D1C12)) {
my ($extracted) = $string =~ /D[0-9]+/g;
say $extracted;
}
D
itslef試合、[0-9]
マッチ桁、+
が数字を1回以上繰り返すことができることを意味します。最後の/g
は、この場合、式を文字列の一致部分を返すようにします。詳細はperlreを参照してください。
my ($d) = $input =~ m/(D\d+)/;
テスト:
perl -E 'while(my $input = shift) { my ($d) = $input =~ m/(D\d+)/; say $d }' D11C1 D1C1
D11
D1
私は表現にマッチした文字列の一部を返すように/グラムを使用すると、フラグの高度な使用のビットであり、実際にどのようなないと思います/ gはのためです。抽出する文字列のビットを指定するために括弧を使用するほうが良いです。つまり、$($抽出)= $ string =〜/ ^(D \ d +)C \ d + / – mekazu