2017-03-17 92 views
0

圖形號碼我有了一個字符串或者具有從URL中提取MySQL或蟒蛇

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

一堆網址是否有一個正則表達式來提取1234無論是使用Python或MySQL 4位數字?

我在想 '酒店'[0-9] [0-9] [0-9] [0-9],某事像這樣

謝謝!

回答

0

你可以嘗試REGEXP

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

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

,你會知道如何正則表達式 '/1234.html'?這個確切的模式? – Sia

0

下面是一個stackoverflow.com鏈接,可能是有用的顯示 how to extract a substring from inside a string in Python?

不幸的是,MySQL的正則表達式只是返回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 ...; 

上面的case語句是沒有必要的,因爲這樣SUBSTRING_INDEX作品(通過返回整個字符串如果搜索字符串不找到)。

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