繁体   English   中英

从网址mysql或python中提取模式编号

[英]extract a pattern number from url mysql or python

我有一堆字符串有一个URL

hotel+4 digit number: hotel1234 
or slash+4digit.html: /1234.html

是否存在使用python或mysql提取1234之类的4位数字的正则表达式?

我在想“酒店” [0-9] [0-9] [0-9] [0-9],像这样

谢谢!

您可以尝试REGEXP

SELECT * FROM Table WHERE ColumnName REGEXP '^[0-9]{4}$'

要么

SELECT * FROM Table WHERE ColumnName REGEXP '^[[:digit:]]{4}$';

以下是一个stackoverflow.com链接,该链接可能对显示如何从Python中的字符串内部提取子字符串很有用

不幸的是,如果字符串存在,MySQL regexp只会返回true。 如果您知道目标周围的文字,我发现substring_index很有用...

select case when ColumnName like 'hotel____' then substring_index(ColumnName,'hotel',-1)
            when ColumnName like '/____.html' then substring_index(substring_index(ColumnName,'/',-1),'.html',1)
            else ColumnName
             end digit_extraction
  from TableName
 where ...;

由于substring_index的工作方式(如果未找到搜索字符串,则返回整个字符串),因此不需要上述case语句。

select substring_index(substring_index(substring_index(ColumnName,'hotel',-1),'/',-1),'.html',1)
  from TableName
 where ...;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM