我基本上在php中有一个包含字符串的数组,我基本上需要过滤字符串才能得到一个9位数的ID号(用括号括起来),我确定可以用这种方法来做到这一点正则表达但我一无所知。
我知道正则表达式将结果作为数组返回,因为可能有多个结果,但我知道每个字符串不会有多个结果,因此我需要将结果直接放入我已经存在的数组中,如果可能的话< / p>
示例:
function getTasks(){
//filter string before inserting into array
$str['task'] = "meeting mike (298124190)";
return $str;
}
答案 0 :(得分:2)
使用preg_replace
您只需要一个行过滤器....
$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);
答案 1 :(得分:1)
<?php
$str = "meeting mike (298124190)";
preg_match("/([0-9]{9})/s", $str, $result);
print_r($result); // $result is an array with the extracted numbers
?>
答案 2 :(得分:1)
好吧,假设它是唯一的一个(括号括起来的9位数字),下面的内容就是:
preg_match("|\(([0-9]{9})\)|", $str['task'], $matches);
return $matches[1]; //Will contain your ID.
答案 3 :(得分:1)
它类似于:
$str = "meeting mike (298124190)";
$pattern = '/[0-9]{9}/';
if (preg_match($pattern, $str, $matches))
{
echo $matches[0];
}