Java RegExp:查找正确的正则表达式

时间:2016-09-28 10:45:44

标签: java regex

我正在努力寻找正确的正则表达式来根据以下标准提取字符串:

我有一个带有多个标签的xml片段。每个元素都以vector开头,以<ABC_xxxx>

结尾

每个元素的xxxx都会发生变化。例如:

</ABC_xxxx>

等...

x的数量不固定!

我想提取每个元素,包括标签本身。

我该怎么做?

感谢。

2 个答案:

答案 0 :(得分:1)

假设没有相互嵌套的元素,请尝试:

\<ABC(\w+)\>[^\<]+\<\/ABC(\1)\>

说明:

  • \<ABC(\w+)\>是以ABC开头的开头标记,ABC中的字母在一组中被捕获(因此为括号)。我们以后需要它们
  • [^\<]+是元素的主体,除了打开尖括号
  • 之外的任何字符
  • <\/ABC(\1)\>是以ABC开头的结束元素,必须跟随开头标记中ABC后面的确切字母。 \1是对第一个捕获组的引用。

重要提示:XML不是regular language,因此正则表达式无法解析它。例如,想象两个或更多个这样的元素彼此嵌套。使用XML解析器来解析XML。

答案 1 :(得分:0)

试试这个:

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