The following regex
<recode>([^<\\/sumfa]*)/gi
and
<recode>([^#]*)sumfa>{1}/gi
end up grabbing too much, I only want it to grab from the first <recode>
to its next </sumfa>
and then allow me to remove each piece in sublime text
Here is the following 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>
/<recode>([^#]*?)<(sumfa)>([^<]*)<\\/\\2>/gmsi
Shorter version: <recode>([^#]*?)<\\/sumfa>/gmi
The main reason that this regex works is because of the ?
quantifier, which makes the match lazy.
Online demonstration on the ?
quantifier:
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.