0

私は基本的にphpに文字列を含む配列を持っています.9桁のID番号(括弧で囲まれています)を取得するために文字列をフィルタリングする必要があります.正規表現でこれを行う方法があると確信しています.無知。

複数の結果が存在する可能性があるため、正規表現はその結果を配列として返すことを知っていますが、各文字列に対して複数の結果が存在しないことはわかっているため、可能であれば既存の配列に直接結果を入れる必要があります

例:

function getTasks(){
   //filter string before inserting into array
   $str['task'] = "meeting mike (298124190)";

   return $str;
}
4

4 に答える 4

2

を使用preg_replaceすると、ラインフィルターが 1 つだけになります。

 $str['task'] = preg_replace('/.*\((\d{9})\).*/', '$1', "meeting mike (298124190)");

使用してpreg_match

$strings = array("meeting mike (298124190)", "meeting mike (298124190)", "meeting mike (298124190)");
foreach ($strings as $string) {
    if (preg_match("|\(([\d]{9})\)|", $string, $matches)) {
        $str[] = $matches[1];
        // OR $str['task'][] = $matches[1];
    }
}
print_r($str);
于 2012-04-28T18:07:22.500 に答える
1

そのようなもの:

$str = "meeting mike (298124190)";
$pattern = '/[0-9]{9}/';
if (preg_match($pattern, $str, $matches))
{

    echo $matches[0];
}
于 2012-04-28T18:18:58.300 に答える