1

次の質問があります。カンマ(、)で囲まれた文をどのように照合しますか。ただし、文のサイズと単語数は異なる場合があります。例えば:

こんにちは、お元気ですか、さようなら

ありがとう、私はとても元気です、さようなら

だから「お元気ですか」と「とても元気です」を合わせたいです。

 $_ =~ /,([\w\s\w\s\w,])/;

しかし、それは非常に間違っているように思われ、スペースで区切られた3つの単語に「おそらく」一致します。

4

2 に答える 2

5

簡単/,(.+?),/ではないでしょうか?または/,([\w\s]+?),/、単語とスペースしかないことを確認したい場合は、

my $str = "Hi,How are you,bye";

$str =~ /,([\w\s]+?),/;
print "$1\n";

$str = "Thanks, I am very good,bye";

$str =~ /,([\w\s]+?),/;
print "$1\n";
于 2012-11-23T15:42:35.080 に答える
2

次に例を示します。

if ($sentence =~ /,(.+?),/g) {
    print $1;
}

これは文と一致し、結果をに入れ$1ます。複数の文がある場合:

while (<>) {
    while (/,(.+?),/g) {
        print $1;
    }
}

これは、標準入力からの入力で、コンマの間の値のみを取得する例です。

(.+?)長さが0より大きく、コンマではないすべてのものに一致します。そのため、()に保存され$1ます。

于 2012-11-23T15:47:13.457 に答える