【发布时间】:2018-07-30 08:39:20
【问题描述】:
我正在尝试捕获两个字符串之间的所有内容,问题是我要捕获的这个字符串可以长达 3000 行数字和逗号。因此,当这种情况发生时,我会收到灾难性回溯的错误。
这是我正在使用的正则表达式,也是下面的示例数据
NEM12[\s\S]+?<\/CSVIntervalData>
<.csvintervaldata>100,NEM12,201807290900,WBAYM,EEQ 200,3030910307,B1E1K1Q1,03,B1,N1,91111580,kWh,30, 300,20180728,.278,.278,.278,.278,.278,.278,.278,.278,.278,.278,.278,.278,.278,.056,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,.074,.278,.278,.278,.278 ,.278,.278,.278,.278,.278,.278,.278,.278,.278,E75,,,20180729000320, 900 <.>
注意中间可以有一千行数字、点和逗号
【问题讨论】:
-
这些点是不是应该出现在标签中(即
<.CSVIntervalData>/<./CSVIntervalData>)? -
\s\S==.,不是吗? (如果您的正则表达式风格不包含带有.的换行符,则添加相应的修饰符。) -
请在标签中指定您使用的语言/工具
-
几个问题:您的样品标签中有点,是错字吗?您在什么环境中运行正则表达式?您能否提供一个重现错误的示例(通过 regex101、ideone 或 pastebin 链接)?
标签: regex