次の文字列値からpreg_match (PHP)を使用して整数値を検索します。次のコードを使用して整数値を見つけています。正の整数では問題なく機能しますが、正と負の両方が必要です。誰でも私を助けることができますか??
文字列値: ヒント:ステータス: -1応答: さようならメッセージ: すべての魚に感謝します。
これまでの preg_match コード:
preg_match('/Status: (\d+)/', $queueinfo, $status1 );
次の文字列値からpreg_match (PHP)を使用して整数値を検索します。次のコードを使用して整数値を見つけています。正の整数では問題なく機能しますが、正と負の両方が必要です。誰でも私を助けることができますか??
文字列値: ヒント:ステータス: -1応答: さようならメッセージ: すべての魚に感謝します。
これまでの preg_match コード:
preg_match('/Status: (\d+)/', $queueinfo, $status1 );
あなたのコードはほとんどそこにあります:
preg_match('/Status: (\d+)/', $queueinfo, $status1 );
追加する必要があるのは、オプションのダッシュ プレフィックスだけです。
preg_match('/Status: (-?\d+)/', $queueinfo, $status1 );
$queueinfo = 'Hint: Status: -1 Response: Goodbye Message: Thanks for all the fish.';
preg_match('/Status:\s*(?P<status>\-?\d+)/', $queueinfo, $match );
echo $match['status'];
<?php
preg_match_all('/-\d+|(?!-)\d+/', 'String Value: Hint: Status: -1 Response: 12588 Goodbye Message: Thanks for all the fish.', $status1 );
print_r($status1);
?>
配列([0] =>配列([0] => -1 [1] => 12588))
試してみる:
preg_match('/Status\:\s(\-?)(\d+)/', $queueinfo, $m);
$status1 = (int)($m[1].$m[2]);