正则表达式字符串获取括号中的数据

时间:2013-02-01 12:11:22

标签: php mysql regex

我有一个正则表达式问题,我希望有人可以提供帮助。

我有以下类型的字符串:

" name VARCHAR(11) NOT NULL, "

其中我试图仅提取长度 - 换句话说,括号内的数字。

我看过这个:True regex for getting content from parentheses in square brackets但我只是不知道如何根据我的情况做这项工作。

我知道我可以使用str_replace来删除不需要的数据,但这会变得混乱并浪费资源。

有人可以帮忙吗?

3 个答案:

答案 0 :(得分:1)

这应该这样做:

$matches = Array();
preg_match("/\w+\((\d+)\)/i", " name VARCHAR(11) NOT NULL, ", $matches);

$matches现在将包含

Array
(
    [0] => VARCHAR(11)
    [1] => 11
)

答案 1 :(得分:0)

如果你要找的是括号之间的一些数字,那么你可以使用类似的代码 -

$str = " name VARCHAR(11) NOT NULL, ";
$matches = array();
$pattern = '/\((\d+)\)/';
preg_match_all($pattern,$str,$matches);

此代码使用preg_match()函数,该函数执行正则表达式匹配。

  

如果提供了matches,则会填充搜索结果。 $matches[0]将包含与完整模式匹配的文本,$matches[1]将具有与第一个捕获的带括号的子模式匹配的文本,依此类推。

答案 2 :(得分:0)

尝试这种模式:

/.*\(([0-9]+)\).*/