我有一个字符串,我需要选择最后一次出现的模式.
字符串是:
[[[1302638400000.0,0],[1302724800000.0,610.64999999999998], [1302811200000.0,2266.6500000000001],[1303156800000.0, 4916.9300000000003],[1303329600000.0,6107.3199999999997],[1303934400000.0,9114.6700000000001]],[[1302638400000.0,20000.0], [1302724800000.0,[1302811200000.0, [1303156800000.0, [1303934400000.0,20000.0]],20610.650000000001], 22266.650000000001],24916.93],26107.32],29114.669999999998],[1304452800000.0,30078.23]],[[1302718580000.0,0.0],[1302772440000.0,3.0532500000000073],[1303107093000.0,11.333250000000007],[1303107102000.0,21.753250000000008],[1303352295000.0, 24.584650000000003],[1303352311000.0,26.8766],[1303815010000.0,30.536599999999996],[1303815028000.0,27.703349999999993]]];
我使用的模式是:
s[[(.*?)]]
不幸的是选择了第一次.突出显示的文字是所需的结果.最后几个方括号无关紧要,只需要最后一个数组.
更新: 如果可以帮你,那么编码就是在c#
解决方法
使用RightToLeft选项:
Regex.Match(s,@"[[(.*?)]]",RegexOptions.RightToLeft)
此选项是.NET正则表达式的独特之处,并且完全符合您的要求:从输入的结尾而不是开头进行搜索.特别要注意的是,非贪心?修饰剂正如你所料;如果你把它关掉,你会得到整个输入,但是你可以得到:
[1302718580000.0,24.584650000000003],27.703349999999993]]]
(编辑:李大同)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|