使用Regex分离亚洲市场数字股票代码

时间:2016-03-06 00:18:43

标签: regex stockquotes

提取一些交易数据,并使用正则表达式分隔代码和持有百分比

输入

" 94324.13%"

" 007007.13%"

" 0354202.91%"

所需输出

" 9432 | 4.13%" (自动收报机是4个数字)

" 00700 | 7.13%" (自动收报机是5个数字)

" 035420 | 2.91%" (自动收报机是6个数字)

主要问题是,自动收报机的位数可能会有4-6位不等。

2 个答案:

答案 0 :(得分:1)

根据给定的信息,不可能对这两个部分进行100%准确的分割。例如:

123410.05%

......可能会分成以下两种情况之一:

1234|10.05%
12341|0.05%

如果百分比在小数点之前可能没有零,那么这也可能是分裂:

123410|.05%

以下正则表达式替换将假设百分比在小数点前有一位数,可能还有一个减号:

查找

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

替换:

\1|\2

regex101.com上查看。

答案 1 :(得分: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

中的演示