Php 从字符串中分离和提取两个不同集合的正则表达式查询?

Php 从字符串中分离和提取两个不同集合的正则表达式查询?,php,regex,Php,Regex,我需要从一个字符串中提取两个独立的信息 比如说, $string = 'int(5)'; //Now I need "int" and the text inside the brackets "5" seperately; $datatype = ? $varlength = ? 如何提取这些信息?单向: list($datatype, $varlength) = explode('(', trim($string, ')')); 这仅在只有一个开口支架时有效 参考:,.单向: list(

我需要从一个字符串中提取两个独立的信息

比如说,

$string = 'int(5)';
//Now I need "int" and the text inside the brackets "5" seperately;
$datatype = ?
$varlength = ?
如何提取这些信息?

单向:

list($datatype, $varlength) = explode('(', trim($string, ')'));
这仅在只有一个开口支架时有效

参考:,.

单向:

list($datatype, $varlength) = explode('(', trim($string, ')'));
这仅在只有一个开口支架时有效

参考:,。

使用此正则表达式

^([a-z]+)\([0-9]+)\)$


编辑

如果要匹配括号中的多个数字,请根据需要展开:

^([a-z]+)\(([0-9a-zA-Z, ]+)\)$ // numbers, letters, comma or space
^([a-z]+)\(([^)]+)\)$          // anything but a closing bracket
使用这个正则表达式

^([a-z]+)\([0-9]+)\)$


编辑

如果要匹配括号中的多个数字,请根据需要展开:

^([a-z]+)\(([0-9a-zA-Z, ]+)\)$ // numbers, letters, comma or space
^([a-z]+)\(([^)]+)\)$          // anything but a closing bracket

在这种情况下。要匹配括号内的任何内容,请使用

preg_match('/^([a-z]+)\(([a-zA-Z0-9\,]+)\)$/', 'enum(1,a)' , $matches);
print_r($matches);

在这种情况下。要匹配括号内的任何内容,请使用

preg_match('/^([a-z]+)\(([a-zA-Z0-9\,]+)\)$/', 'enum(1,a)' , $matches);
print_r($matches);

哇,谢谢这真是太好了。但是,不能保证括号内的文本是number,可以是类似于
enum(1,a)
,在这种情况下,我想要
1,a
@mrN,它应该匹配
varchar(50)
now对于typpo感到抱歉。谢谢,斯塔克斯!哇,谢谢这真是太好了。但是,不能保证括号内的文本是number,可以是类似于
enum(1,a)
,在这种情况下,我想要
1,a
@mrN,它应该匹配
varchar(50)
now对于typpo感到抱歉。谢谢,斯塔克斯!