[已解决]求个正则
本帖最后由 wua0550 于 2016-11-28 19:00 编辑<REC><OR_N>161128102230</OR_N><TIME>2016-11-28 16:00:58</TIME><STA>1</STA><TYPE>2</TYPE><CO_I>200022</CO_I><PRI>53.58</PRI><QTY>10.00</QTY><BAL>10.00</BAL><WD_T></WD_T></REC><REC><OR_N>161128102150</OR_N><TIME>2016-11-28 16:00:22</TIME><STA>5</STA><TYPE>2</TYPE><CO_I>200022</CO_I><PRI>53.69</PRI><QTY>10.00</QTY><BAL>10.00</BAL><WD_T>2016-11-28 16:00:47</WD_T></REC><REC><OR_N>161128102146</OR_N><TIME>2016-11-28 16:00:20</TIME><STA>5</STA><TYPE>1</TYPE><CO_I>200016</CO_I><PRI>166.03</PRI><QTY>3.00</QTY><BAL>3.00</BAL><WD_T>2016-11-28 16:00:47</WD_T></REC><REC><OR_N>161128102173</OR_N><TIME>2016-11-28 16:00:34</TIME><STA>1</STA><TYPE>2</TYPE><CO_I>100010</CO_I><PRI>21.48</PRI><QTY>5.00</QTY><BAL>5.00</BAL><WD_T></WD_T></REC> 原文本如上,我想取两个<REC></REC>之间<STA>1</STA> 为1的条目
理想的输出应该为<OR_N>161128102230</OR_N><TIME>2016-11-28 16:00:58</TIME><STA>1</STA><TYPE>2</TYPE><CO_I>200022</CO_I><PRI>53.58</PRI><QTY>10.00</QTY><BAL>10.00</BAL><WD_T></WD_T></REC>
<REC><OR_N>161128102173</OR_N><TIME>2016-11-28 16:00:34</TIME><STA>1</STA><TYPE>2</TYPE><CO_I>100010</CO_I><PRI>21.48</PRI><QTY>5.00</QTY><BAL>5.00</BAL><WD_T></WD_T></REC>
<REC>.*?<STA>1</STA>.*?</REC> 我用这条正则式去取的时候会向后匹配到第二,第三个REC内的sta 1 的内容~~所以失败了~
我只想用一条正则解决,如果告诉我别的方法的~~先谢谢了~~不过我不想用! 这个有关正则的平衡组匹配。AU3似乎不能平衡组匹配。 <REC>(?:(?!</REC>).)*?<STA>1</STA>.*?</REC> 回复 3# afan
a版 谢谢了~~我也想说用匹配排除来做~~但我用错了[^</REC>] 看了A版的答案恍然大悟~~非常感谢 回复 3# afan
a版,AU3的正则有平衡组吗? 回复 5# haijie1223
有~少见而已 回复 6# afan
afan写个示例来看,非常期待 回复 7# haijie1223
这个没怎么用,忘得差不多了,论坛肯定是有例子的,搜搜~ 回复 8# afan
好的,我爬下~
afan 发表于 2016-11-28 18:07 http://www.autoitx.com/images/common/back.gif
又跟A版学了一着{:face (356):}
页:
[1]