RegEx find all XML tags

坚强是说给别人听的谎言 提交于 2019-12-06 08:17:15

You could change (?<=<)(.*?)((?= \/>)|(?=>)) to (?<=<)([^\/]*?)((?= \/>)|(?=>)), i.e. instead of using (.*?) for the tag name, use ([^\/]*?). / is not allowed in tag names anyway.

You can achieve this simply using:

<([^\/>]+)[/]*>

The group capture will have your output

Found another solution:

((?=<)(?!<\/)<)(.*?)((?= \/>)|(?=>))

Basically this ((?=<)(?!<\/)<) looks behind everything that is "<" (?=<) and not "< /" (?!<\/).

@Redneb's answer is cleaner though, less capturing groups and shorter and fancier.

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!