Java 一个模式中有多个匹配项?

Java 一个模式中有多个匹配项?,java,html,regex,Java,Html,Regex,我有一个输入字符串,它有如下字符串: …诸如此类 输入中可以有多个此类字符串的实例 我想检索此类字符串的属性(标题、alt等)和id,然后打印id、alt、标题等。可以有没有任何属性的图像,只有id的图像 请告知 首先,这通常被认为不是一个好方法 但我明白,对于快速+肮脏的应用程序,您不想处理第三方库。但是你必须考虑以下问题,这使得ReGEX更糟糕的方法: 您的xml是有效的还是包含“断开的”标记 属性是否总是按相同的顺序排列?或者,caption有时会出现在alt之前吗 您已经声明了一些im

我有一个输入字符串,它有如下字符串:

…诸如此类

输入中可以有多个此类字符串的实例

我想检索此类字符串的属性(标题、alt等)和id,然后打印id、alt、标题等。可以有没有任何属性的图像,只有id的图像

请告知

首先,这通常被认为不是一个好方法

但我明白,对于快速+肮脏的应用程序,您不想处理第三方库。但是你必须考虑以下问题,这使得ReGEX更糟糕的方法:

  • 您的xml是有效的还是包含“断开的”标记
  • 属性是否总是按相同的顺序排列?或者,
    caption
    有时会出现在
    alt
    之前吗
  • 您已经声明了一些
    image
    标记只包含id标记
这些(以及更多)方面决定了正则表达式解决方案的复杂性。 您需要一个双循环来获取所有必需的数据

  • 查找所有图像标记:
    (]+)>
    (假设属性值中没有
    字符)
  • 然后,在找到的
    图像
    标记中,使用以下命令:
    []+([a-zA-Z0-9]+)=“([^”]*)”
我希望您已经看到,这是相当混乱的,并没有涵盖所有有效xml的情况

xml解析器始终是正确的方法。

首先,这通常被认为不是一个好方法

<>但是我知道对于快速+脏的应用程序,你不想处理第三方库。但是你必须考虑下面的问题,这使得ReGEX更糟糕的方法:

  • 您的xml是有效的还是包含“断开的”标记
  • 属性是否总是按相同的顺序排列?或者
    caption
    是否有时出现在
    alt
    之前
  • 您已经声明了一些
    image
    标记只包含id标记
这些(以及更多)方面决定了正则表达式解决方案的复杂性。 您需要一个双循环来获取所有必需的数据

  • 查找所有图像标记:
    (]+)>
    (假设属性值中没有
    字符)
  • 然后,在找到的
    图像
    标记中,使用以下命令:
    []+([a-zA-Z0-9]+)=“([^”]*)”
我希望您已经看到,这是相当混乱的,并没有涵盖所有有效xml的情况

xml解析器始终是正确的方法