2016-03-06 40 views
-4

拉一些交易數據且具有保持使用正則表達式來分隔亞洲市場數值股票行情

輸入

「94324.13%」

「007007.13%使用正則表達式來分離代號和比例問題「

」0354202.91%「

期望輸出

「9432 | 4.13%」(股票是4個數字)

「00700 | 7.13%」(股票是5號)

「035420 | 2.91%」(代碼是6位數字)

主要問題是,報價器的位數可能在4-6位數的任何位置變化。

+0

你有知道的行情有多長或另一部分是什麼辦法? – Oisin

+0

正則表達式到底在哪裏? – Farside

+0

您使用哪種語言? Javascript,Python,PHP等? – Saleem

回答

1

對於給定的信息,不可能100%精確地分割兩個部分。例如:

123410.05% 

...可在任一分爲以下兩種:

1234|10.05% 
12341|0.05% 

如果百分比可能沒有小數點前的零,那麼這也將是一個可能的拆分:

123410|.05% 

下面的正則表達式替換將承擔比例有小數點前一位數字,可能是一個減號:

查找:

/^(\d{4,6})(\-?\d.*)$/gm 

替換:

\1|\2 

看到它的regex101.com

0

我想試試這個正則表達式

(\d{4,6})(\d+\.\d{1,2}%) 

這裏充滿演示:

的Python:

data = "007007.13%" 
rx = re.compile(r"(\d{4,6})(\d+\.\d{1,2}%)") 
formated_text = rx.sub(r'\1|\2', data) 
print formated_text 

#it will print 
00700|7.13% 

你可以演示一下在python here

的Javascript:

var re = /(\d{4,6})(\d+\.\d{1,2}%)/g; 
var str = '"007007.13%"'; 
var subst = '$1|$2'; 

var result = str.replace(re, subs); 

演示在Javascript