我正在尝试验证类似于此的表达式:
SEN 3 00000001 HT 12.60 39.50
使用模式SEN \\d{1} \\w{8} \\w{1,2} ([-+]?[0-9]*\\.?[0-9]*){1,2}
。这种模式大多有效。返回的组是
SEN 3 00000001 HT 12.60
39.50
丢失了。我找出原因是因为我的模式中的最后一个数量条件({1,2}
)仅满足12.60
。
有没有办法根据使用前瞻的([-+]?[0-9]*\\.?[0-9]*)
字符数设置满足\\w{1,2}
所需的数量?
答案 0 :(得分:4)
你几乎得到了它:)
您所犯的错误是离开最后重复的组外空间。由于12.60和39.50之间的空格,除了12.60之外将没有匹配。
请尝试使用此正则表达式:
SEN \\d{1} \\w{8} \\w{1,2}( [-+]?[0-9]*\\.?[0-9]*){1,2}
一些优化: