我有一个正则表达式问题,我希望有人可以提供帮助。
我有以下类型的字符串:
" name VARCHAR(11) NOT NULL, "
其中我试图仅提取长度 - 换句话说,括号内的数字。
我看过这个:True regex for getting content from parentheses in square brackets但我只是不知道如何根据我的情况做这项工作。
我知道我可以使用str_replace来删除不需要的数据,但这会变得混乱并浪费资源。
有人可以帮忙吗?
答案 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]+)\).*/