三位小数可带负数:
(-?\d+\.\d\d\d)
(-?\d+\.\d{3})
数字通用:
([+-]?\d+(,\d+)*.\d+)?
一大段文字匹配: ([\s\S]*?)
文字:(\S*) 注意S+ 判断了里面必须要有字符,不能空
空格:\s
文字+空格:(\S+)\s
在线调试:https://www.regexpal.com/
示例:
成交日期 交易所 品种 交割期 买卖 成交价 手数 开平 成交额 手续费 投保 平仓盈亏 交易所成交号
20160912 郑州 PTA精对 1609 买 4588.000 8 开 183520.00 26.40 保 0.00 0
var regex3 = /(\d{8})\s+(\S*)\s+(\S+)(\s+|\s?)(\d{4})\s+(买|卖)\s+(\d+\.\d\d\d)\s+(\d+)\s+(开|平|平今)\s+(\d+\.\d{1,2})\s+(\d+\.\d{1,2})\s+(保|投)\s+(-?\d+\.\d{1,2})\s+(\d+)/;
交易所 品种 交割期 买卖 成交量 成交金额 清算价 清算金额 实提手数 交割手续费 交割盈亏
上海 镍 1609 买 900 70956120.00 77550.000 69795000.00 0 2700.00 -1161120.00
var regex2 = /(\S*)\s+(\S*)(\s+|\s?)(\d{4})\s+(买|卖)\s+(\d+)\s+(\d+\.\d{2})\s+(\d+\.\d{3})\s*(\d+\.\d{2})\s*(\d+)\s*(\d+\.\d{2})\s+(-?\d+\.\d{2})/g;
示例:
原文:
期货客户帐单_持仓盈亏单
--------------------------------------------------------------------------------------------------------------------------------------------
合约代码 买手 买价 卖手 卖价 昨结算价 今结算价 持仓盈亏 履约保证金 套投 期权权利金变动
--------------------------------------------------------------------------------------------------------------------------------------------
ru1801 0 0.000 1347 16035.330 13550.000 13310.000 36710200.00 21514284.00 套保 0.00
ru1805 0 0.000 1008 13957.183 14015.000 13765.000 1937200.00 16650144.00 套保 0.00
0 2355 38647400.00 38164428.00 0.00
匹配交易两行:
(\S+)\s+(\d)\s+(\d.\d{3})\s+(\d*)\s+(\d*.\d{3})\s+(\d*.\d{3})\s+(\d*.\d{3})\s+(\d*.\d{2})\s+(\d*.\d{2})\s+(\S+)\s+(\d.\d{2})
. 交易结算单(浮动)
----------------------------------------------------------------------------------------
资产帐号 客户姓名 开始时间 结束时间 币种
----------------------------------------------------------------------------------------
16501266 厦门同歆贸易有限公司 20171101 20171130 人民币
上面这段进行匹配
匹配1:
资产帐号\s*客户姓名\s*开始时间\s*结束时间\s*币种\s+\-*\s+(\d*)\s+\S*\s+(\d{8})\s+(\d{8})\s+\S*
匹配2:(\d*)\s+\S*\s+(\d{8})\s+(\d{8})\s+\S*
带小数点的数字匹配:
当日质押金:\s+(-?\d+(,\d+)*.\d+)