如何正则化字符串+;mysql中的数字模式

如何正则化字符串+;mysql中的数字模式,mysql,regex,Mysql,Regex,我在url中有这种模式,我需要从url中提取4位数字。模式如下所示: hotel1234 /1234.html 我试过了 select sdate,url, case when url like '/%.html' then substring_index(url,'.',1) when url REGEXP 'HOTEL'+'[0-9].{4}' then left(substring_index(url,'HOTEL',-1),4) els

我在url中有这种模式,我需要从url中提取4位数字。模式如下所示:

hotel1234 
/1234.html
我试过了

  select sdate,url,
  case when url like '/%.html' then substring_index(url,'.',1)
  when url REGEXP 'HOTEL'+'[0-9].{4}' then left(substring_index(url,'HOTEL',-1),4)          
        else url
        end digit
  from urltable
这在某些url上不起作用。 我想在“/1234.html”上注册exp,正确的表达式是什么?

以下应该可以:

SELECT url, 
CASE WHEN url LIKE '/%.html' THEN SUBSTRING(SUBSTRING_INDEX(url,'.',1), 2)
  WHEN url REGEXP '[a-zA-Z]{5}[0-9]{4}' THEN substring(url, -4)         
        ELSE url
        END digit
FROM test;

这里有一个

+
用于数学。为什么不把它全部写在引号里呢
{4}
是4个任意字符。请不要重复问题。