在MySQL中提取字符串的数字部分

时间:2015-04-14 13:17:01

标签: mysql regex

我需要清理包含这样字符串的数据库:

<a href="/members/a/" title="a">a</a> ist der Gruppe <a href="/groups/3106/">a</a> beigetreten

<a href="/members/a/" title="a">a</a> ist der Gruppe <a href="/groups/3106_123/">a</a> beigetreten

<a href="/members/a/" title="a">a</a> ist der Gruppe <a href="/groups/3106_A/">a</a> beigetreten

<a href="/members/a/" title="a">a</a> ist der Gruppe <a href="/groups/3106A/">a</a> beigetreten

我只需要/groups/之后的数字部分,所以在这个例子中,只有“3106”。数字的长度可变。

剥离第一部分很容易:

SUBSTRING(field, locate('groups/', field)+7)

但是如何剥去其他人?

2 个答案:

答案 0 :(得分:1)

既然你要PHP regex,那么你就是:

(?<=\/groups\/)[0-9]+

PHP示例代码:

$re = "/(?<=\\/groups\\/)[0-9]+/"; 
$str = "<a href=\"/members/a/\" title=\"a\">a</a> ist der Gruppe <a href=\"/groups/3106A/\">a</a> beigetreten"; 
preg_match_all($re, $str, $matches);

答案 1 :(得分:1)

使用REGEX的{​​{1}}尝试这种方式,只选择字符串列值的数字

MYSQL

enter image description here