我正在努力寻找正确的正则表达式来根据以下标准提取字符串:
我有一个带有多个标签的xml片段。每个元素都以vector
开头,以<ABC_xxxx>
每个元素的xxxx都会发生变化。例如:
</ABC_xxxx>
等...
x的数量不固定!
我想提取每个元素,包括标签本身。
我该怎么做?
感谢。
答案 0 :(得分:1)
假设没有相互嵌套的元素,请尝试:
\<ABC(\w+)\>[^\<]+\<\/ABC(\1)\>
说明:
\<ABC(\w+)\>
是以ABC
开头的开头标记,ABC
中的字母在一组中被捕获(因此为括号)。我们以后需要它们[^\<]+
是元素的主体,除了打开尖括号<\/ABC(\1)\>
是以ABC
开头的结束元素,必须跟随开头标记中ABC
后面的确切字母。 \1
是对第一个捕获组的引用。重要提示:XML不是regular language,因此正则表达式无法解析它。例如,想象两个或更多个这样的元素彼此嵌套。使用XML解析器来解析XML。
答案 1 :(得分:0)
试试这个:
<ABC_([^>]*)>([^<]*)<\/ABC_([^>]*)>