3

=perlと)perlの間で文の内容をコピーする必要があります。たとえば、次のように言います。

 $temp="06/18/2012 08:35:35(PID=2150)";

ここで、変数と2150の間で値をコピーする必要があります。=)$temp2

4

2 に答える 2

7

これは、正規表現を使用して簡単に実現できます。

my ($temp2) = $temp =~ /=(\d+)\)/;

=との間の一連の数字を探してください\)。括弧はグループのキャプチャに使用されるため、閉じ括弧をエスケープする必要があります。

括弧で囲む$temp2必要があるのは、リスト コンテキストに一致の結果を返すよう強制する必要があるためです。スカラー コンテキストでは、一致の数を取得するだけです。この場合は 1 です。

于 2012-06-18T13:39:48.520 に答える
2

index() と substr() だけを使用します (演習として、もしあれば ;)。

$temp="06/18/2012 08:35:35(PID=2150)";
$temp = substr $temp, index($temp, "=") + 1, (index($temp, ")") - 1) - index($temp, "=");
print $temp;
于 2012-06-18T13:48:40.360 に答える