以下正则表达式
<recode>([^<\/sumfa]*)/gi
和
<recode>([^#]*)sumfa>{1}/gi
最终抓住了太多,我只希望它从第一个<recode>
抓到下一个</sumfa>
,然后允许我删除崇高文本中的每个部分
以下是XML
<item>
<imd>
<fs_ar>T</fs_ar>
<fs_as>T</fs_as>
<fs_af>T</fs_af>
<fs_aic>T</fs_aic>
<fs_air>T</fs_air>
<kid>601</kid>
</imd>
<title>whatever</title>
<recode>200</recode>
<reto>312</reto>
<doto>312</doto>
<pathrela>whatever.html</pathrela>
<realext>.php</realext>
<kindext>.html</kindext>
<charset>iso-8859-1</charset>
<mime>text/html</mime>
<sizeex>5633</sizeex>
<sizeco>T</sizeco>
<impsco>1.602941</impsco>
<impscosca>1.455153</impscosca>
<chgscosca>1.455153</chgscosca>
<lkstae>1</lkstae>
<lnkta>3</lnkta>
<sumfa>1</sumfa>
</item>
<item>
<imd>
<fs_ar>T</fs_ar>
<fs_as>T</fs_as>
<fs_af>T</fs_af>
<fs_aic>T</fs_aic>
<fs_air>T</fs_air>
<kid>23</kid>
</imd>
<title>Whats UP Dog</title>
<recode>200</recode>
<reto>219</reto>
<doto>219</doto>
<pathrela>wud.html</pathrela>
<realext>.html</realext>
<kindext>.html</kindext>
<charset>iso-8859-1</charset>
<mime>text/html</mime>
<sizeex>6252</sizeex>
<sizeco>T</sizeco>
<lastmo>2013-04-18 08:51:58</lastmo>
<impsco>398.818604</impsco>
<impscosca>9.11296</impscosca>
<chgscosca>8.657311</chgscosca>
<lksta>2</lksta>
<lkstae>8</lkstae>
<lnkta>414</lnkta>
<sumfa>1</sumfa>
</item>
答案 0 :(得分:2)
/<recode>([^#]*?)<(sumfa)>([^<]*)<\/\2>/gmsi
较短版本:<recode>([^#]*?)<\/sumfa>/gmi
这个正则表达式的主要原因是因为?
量词,这使得匹配变得懒惰。
?
量词的在线演示: