[英]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.