简体   繁体   中英

Need regex to remove lots of tags in a XML file

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:

'?' Quantifier @ Regex101

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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM