我需要从字符串中提取两个单独的信息。
例如,
$string = 'int(5)';
//Now I need "int" and the text inside the brackets "5" seperately;
$datatype = ?
$varlength = ?
如何提取这些信息?
答案 0 :(得分:2)
使用此正则表达式
^([a-z]+)\(([0-9]+)\)$
if (preg_match('~^([a-z]+)\(([0-9]+)\)$~i', 'int(5)', $matches)) {
$datatype = $matches[1]; // int
$varlength = $matches[2]; // 5
}
修改强>
如果您想在括号中匹配多个数字,请根据需要展开它:
^([a-z]+)\(([0-9a-zA-Z, ]+)\)$ // numbers, letters, comma or space
^([a-z]+)\(([^)]+)\)$ // anything but a closing bracket
答案 1 :(得分:1)
一种方式:
list($datatype, $varlength) = explode('(', trim($string, ')'));
仅当只有一个开括号时才有效。
答案 2 :(得分:1)
在这种情况下。你想匹配括号内的任何东西,使用这个
preg_match('/^([a-z]+)\(([a-zA-Z0-9\,]+)\)$/', 'enum(1,a)' , $matches);
print_r($matches);