提取一些交易数据,并使用正则表达式分隔代码和持有百分比
输入
" 94324.13%"
" 007007.13%"
" 0354202.91%"
所需输出
" 9432 | 4.13%" (自动收报机是4个数字)
" 00700 | 7.13%" (自动收报机是5个数字)
" 035420 | 2.91%" (自动收报机是6个数字)
主要问题是,自动收报机的位数可能会有4-6位不等。
答案 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);
中的演示