在正则表达式中捕获未定义数量的项目

时间:2019-03-11 19:50:29

标签: regex

我要捕获以下数据:

[趋势,约翰,DATA1、0.17、33.34、26、33.33、0.25、33.33,DATA2、0.26、20.0、261、20.0、0.234、20.0、0.1、20.0、5、20.0,最终,245]

来自以下文本:

Market

#TREND

Person: JOHN

DATA1
1) 0.17 (33.34%) 
2) 26 (33.33%)      
3) 0.25 (33.33%)  
* random text here

DATA2
1) 0.26 (20.0%) 
2) 261 (20.0%) 
3) 0.234 (20.0%) 
4) 0.1 (20.0%) 
5) 5 (20.0%) 
* qsdfdsf random dsfg text random here

FINAL
245

Signature

我编写了以下正则表达式代码,在此精确示例中可以正常工作:

#(TREND)\n+\w*:\s*(JOHN)\n+(DATA1)\n\d\S\s(\d+.?\d*)\s\((\d+.?\d*)%\)\s*\n\d\S\s(\d+.?\d*)\s\((\d+.?\d*)%\)\s*\n\d\S\s(\d+.?\d*)\s\((\d+.?\d*)%\)\s*\n.*\n*(DATA2)\n\d\S\s(\d+.?\d*)\s\((\d+.?\d*)%\)\s*\n\d\S\s(\d+.?\d*)\s\((\d+.?\d*)%\)\s*\n\d\S\s(\d+.?\d*)\s\((\d+.?\d*)%\)\s*\n\d\S\s(\d+.?\d*)\s\((\d+.?\d*)%\)\s*\n\d\S\s(\d+.?\d*)\s\((\d+.?\d*)%\)\s*\n.*\n*(FINAL)\n(\d+)    

我想使DATA1和DATA2的随机数从1到10分别可扩展:

Market

#TREND

Person: JOHN

DATA1
1) 0.17 (33.34%) 
2) 26 (33.33%)      
3) 0.25 (33.33%) 
4) 0.11 (40.40%)
5) 0.222 (50.50%) 
* random text here

DATA2
1) 0.26 (20.0%) 
2) 261 (20.0%) 
3) 0.234 (20.0%) 
* qsdfdsf random dsfg text random here

FINAL
245

Signature

0 个答案:

没有答案