我有一个没有特定格式的VARCHAR列。
以下是一些例子:
afdsbfgf, jbhttp://www.iabvdfbdos.com/view.php?p_id=170405, arcm, cocm, fbus, bv[123545]
当字符串类似'bv [123545]'时,我需要匹配括号之间的子字符串。此子字符串始终为数字。
我尝试过这样:
REGEXP_SUBSTR (my_column, '[^bv\[]+[[:digit:]]+')
但这也与
相匹配'jbhttp://www.iabvdfbdos.com/view.php?p_id=170405' and returns "_id=170405"
提前致谢
答案 0 :(得分:1)
假设括号仅在该行中出现一次。它抓住第一个'bv'出现的第一个子组(parens中的部分),然后是左方括号,后跟一个或多个数字,后跟右方括号。方括号将被转义,因为它们在正则表达式引擎中定义了一个字符类。
$arr_tmp = array();
for($i = 0; $i < count($columns); $i++)
{
$arr_tmp[$columns[$i]] = $row[$columns[$i]]
}
$records []= $arr_tmp;