java的特定正则表达式

时间:2017-11-25 17:31:03

标签: java regex

我尝试上传具有特定结构的文件,我需要验证每一行。 我认为正则表达式会有所帮助,但我不确定如何构建

每一行包含下一个结构

decimalNumber : (1 to 15) of "(number,decimalNumber,$decimalNumber")

例如

13.1 : (1,3.0,$100.23) (2,9.5,$21.3)

我还要确认结肠后面的部分不包含15次重复

1 个答案:

答案 0 :(得分:2)

这应该可以解决问题:

^\d+\.\d+\s\:(\s\((1[0-5]|\d),\d+\.\d+,\$\d+\.\d+\)){1,15}$
  • \d+\.\d+一个或多个数字后跟一个文字.后跟一个或多个数字
  • \s一些空间
  • \:字面冒号
  • \s更多空间
  • ( … ){1,15}然后以下结构1到15次:
    • \(左派文字
    • ( … | … )接下来,改变。以下任一项:
      • 1[0-5] a 1紧接着是0,1,2,3,4或5
      • \d一位数字
    • ,文字逗号
    • d+\.\d+一个或多个数字后跟一个文字.后跟一个或多个数字
    • ,文字逗号
    • \$一个字面的美元符号
    • \d+\.\d+一个或多个数字后跟一个文字.后跟一个或多个数字
    • \)正确的paren文字

https://regex101.com/r/I6Irrf/1/