1

我遇到了一个正则表达式问题,希望有人能提供帮助。

我有以下类型的字符串:

" name VARCHAR(11) NOT NULL, "

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

我看过这个:True regex for get content from括号中的方括号,但我只是不知道如何使它适用于我的案例。

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

任何人都可以帮忙吗?

4

3 回答 3

1

这应该这样做:

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

$matches现在将包含

Array
(
    [0] => VARCHAR(11)
    [1] => 11
)
于 2013-02-01T12:14:09.143 回答
0

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

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

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

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

于 2013-02-01T12:15:46.907 回答
0

试试这个模式:

/.*\(([0-9]+)\).*/
于 2013-02-01T12:15:54.363 回答