Regex 如何创建正则表达式以匹配此示例?

Regex 如何创建正则表达式以匹配此示例?,regex,Regex,我试图创建正则表达式来匹配所有的日期、描述和金额。我差不多有了,但最后一行搞乱了,匹配的是30.98,而不是-58.00 我如何匹配“06/14/18”,“HECK ORDER00172 DES:费用ID:1FCG0340付款信息:产品:30.98 S&H:22.91 GA税:4.11”,“-58.00”?以及所有其他交易行 下面是我提出的表达式“/([0-9]{2}/[0-9]{2}/[0-9]{2})\s+(.*)\s+([0-9\,-]+[0-9]{2})/mis” 看看这个例子 我希望表

我试图创建正则表达式来匹配所有的日期、描述和金额。我差不多有了,但最后一行搞乱了,匹配的是30.98,而不是-58.00

我如何匹配“06/14/18”,“HECK ORDER00172 DES:费用ID:1FCG0340付款信息:产品:30.98 S&H:22.91 GA税:4.11”,“-58.00”?以及所有其他交易行

下面是我提出的表达式“/([0-9]{2}/[0-9]{2}/[0-9]{2})\s+(.*)\s+([0-9\,-]+[0-9]{2})/mis”

看看这个例子

我希望表达式与以下内容匹配:

1) "06/13/18", "CHECKCARD 0612 WAFFLE HOUSE 1554 BUFORD GA 163206888100637 CKCD 5812 XXXXXXXXXXXX7127 XXXX XXXX XXXX 7127", "-14.00"
2) "06/13/18", "CHECKCARD 0612 SQU*SQ *BRAVO MEX Buford GA 550191566794 CKCD 5812 XXXXXXXXXXXX7127 XXXX XXXX XXXX 7127", "-12.56"
3) "06/05/18", "1293", "-1,289.00"
4) "06/14/18", "1309", "-500.72"
5) "06/01/18", "FEE", "-29.95"
6) "06/14/18", "CHECK ORDER00172 DES:FEE ID:1FCG0340 PMT INFO: PRODUCT(S): 30.98 S&H: 22.91 GA TAX: 4.11", "-58.00"

一种可能性是要求最后一组为:

(1) 紧接着一个日期

(2) 在一行的末尾,并对下一行的第一个字符仅为数字/小数进行负前瞻

还请注意,您可以使用
\d
代替
[0-9]


你的正则表达式看起来已经在运行了。有什么问题吗?@TimBiegeleisen我想在这张“2018年6月14日支票订单00172 DES:FEE ID:1FCG0340付款信息:产品:30.98 S&H:22.91 GA税:4.11-58.00”上匹配“-58.00”而不是“30.98”,谢谢!这适用于该行,但打破了“06/05/18 1293-1289.00 06/14/18 1309-500.72”这应该是两个单独的匹配,但匹配如一所见编辑,您也可以允许对日期进行前瞻这是完美的。由于某种原因,我不能把我的头绕在长相的头上
1) "06/13/18", "CHECKCARD 0612 WAFFLE HOUSE 1554 BUFORD GA 163206888100637 CKCD 5812 XXXXXXXXXXXX7127 XXXX XXXX XXXX 7127", "-14.00"
2) "06/13/18", "CHECKCARD 0612 SQU*SQ *BRAVO MEX Buford GA 550191566794 CKCD 5812 XXXXXXXXXXXX7127 XXXX XXXX XXXX 7127", "-12.56"
3) "06/05/18", "1293", "-1,289.00"
4) "06/14/18", "1309", "-500.72"
5) "06/01/18", "FEE", "-29.95"
6) "06/14/18", "CHECK ORDER00172 DES:FEE ID:1FCG0340 PMT INFO: PRODUCT(S): 30.98 S&H: 22.91 GA TAX: 4.11", "-58.00"
(\d{2}\/\d{2}\/\d{2})\s+(.*?)\s+([0-9\,\-]+\.\d{2}) *(?=\d\d\/|$(?!\n-?[\d\.]+$))
                                                   ^ ---->