我遇到了一个正则表达式问题,希望有人能提供帮助。
我有以下类型的字符串:
" name VARCHAR(11) NOT NULL, "
其中我试图只提取长度 - 换句话说,括号内的数字。
我看过这个:True regex for get content from括号中的方括号,但我只是不知道如何使它适用于我的案例。
我知道我可以使用 str_replace 删除不需要的数据,但这会很混乱并浪费资源。
任何人都可以帮忙吗?
我遇到了一个正则表达式问题,希望有人能提供帮助。
我有以下类型的字符串:
" name VARCHAR(11) NOT NULL, "
其中我试图只提取长度 - 换句话说,括号内的数字。
我看过这个:True regex for get content from括号中的方括号,但我只是不知道如何使它适用于我的案例。
我知道我可以使用 str_replace 删除不需要的数据,但这会很混乱并浪费资源。
任何人都可以帮忙吗?
这应该这样做:
$matches = Array();
preg_match("/\w+\((\d+)\)/i", " name VARCHAR(11) NOT NULL, ", $matches);
$matches
现在将包含
Array
(
[0] => VARCHAR(11)
[1] => 11
)
如果您要查找的只是括号之间的一些数字,那么您可以使用一些类似于此的代码 -
$str = " name VARCHAR(11) NOT NULL, ";
$matches = array();
$pattern = '/\((\d+)\)/';
preg_match_all($pattern,$str,$matches);
此代码使用preg_match()
执行正则表达式匹配的函数。
如果
matches
提供,则填充搜索结果。$matches[0]
将包含与完整模式匹配的$matches[1]
文本,将具有与第一个捕获的带括号的子模式匹配的文本,依此类推。
试试这个模式:
/.*\(([0-9]+)\).*/