Mariadb:Regexp_substr不使用非匹配组正则表达式

时间:2017-12-05 23:53:03

标签: regex mariadb

我正在使用查询从包含文本的列中提取用户ID。这是我正在使用的论坛系统,并希望从包含完整消息的文本字段中获取用户ID部分。我正在使用的查询是

SELECT REGEXP_SUBSTR(message, '(?:member: )(\d+)' ) AS user_id from posts where message like '%quote%';

现在忽略了丑陋的SQL而不是最终的事实我只需要达到读取用户ID的程度。以下是您将在消息列

中看到的文本示例
`QUOTE="Moony, post: 967760, member: 22665"]I'm underwhelmed...[/QUOTE]

Hopefully we aren’t done yet and this is nothing but a depth signing!`

在mariadb REGEXP_SUBST中使用时,正则表达式有什么不同吗?这应该是PCRE并且在正则表达式测试器中工作并且应该正确读取。它应该寻找小组"成员:"然后在那之后取数字并在所有这些帖子上进行一次匹配。

1 个答案:

答案 0 :(得分:0)

这是一个丑陋的黑客/解决方法,通过对以下(?<=member: )\.+(?="])使用前瞻工作,但如果帖子中有多个引号则不起作用

session.register('com.forlunch.list_chats', function (args, kwargs, details) { return functions.list_chats(args); })