本帖最后由 itzyx 于 2022-4-17 19:45 编辑
前两天在论坛发表了一个请教正则表达式的帖子,后面听取A大的建议,先提取想要数据的那一段落,然后再提取关键字后面的数据,用这个方法确实也成功了。但是今天提取另外一组数据的时候居然报错了,我打开看了一下,数据的格式相同,就是内容多了一点,我用Au3.REHelper 试了好几次,只要粘贴全部文本,用正则表达式提取就无法匹配,但是
我单独复制那一段落粘贴,用正则表达式提取就可以正常匹配。真的百思不得其解,这个是我正则表达式写的有错误嘛?
原数据:
............(前面省略)
"SVs Used Trend":{
"type":"chart",
"unit":"",
"line":[
{
"name":"GPS",
"points":[
{
"timestamp":"2022-04-07 02:18:40.000",
"value":0
},
{
"timestamp":"2022-04-07 02:18:41.000",
"value":0
},
{
"timestamp":"2022-04-07 02:18:43.000",
"value":0
............. (中间很长,省略了)
},
{
"timestamp":"2022-04-08 01:12:51.000",
"value":23
}
]
}
]
},
"Average CN0 Trend":{
"type":"chart",
............. (后面省略)
这是我用的(?si)"SVs Used Trend":{.+},\s*"Average CN0 Trend" 表达式,提取中间这一段落,两个文本我仔细比较了一下,"SVs Used Trend":{ 前,跟 "Average CN0 Trend":{后 没什么区别,就是不知道有的时候为啥全文匹配的时候无法成功。后面我试了一下,(?si)"SVs Used Trend":{.+, 也可以成功,但是把后面的文本也匹配进去了。被正则搞得有点头疼,想了半天,决定还是请教一下各位大佬。
|