我有输入字符串,其字符串如下:
<image id="1234" caption="text1" alt="text2">
......等等......
输入中可能有多个此类字符串的实例。
我想检索此类字符串的属性(标题,替代等)以及id,然后打印id,alt,caption等。可以有没有任何属性的图像,只是id。
请指教。
答案 0 :(得分:3)
首先要做的事情是:Don't parse xml or [x]html with regex,这通常被认为不是一个好方法。
但我明白,对于快速+脏应用程序,您不希望处理第三方库。但是你必须考虑以下问题,这使得正则表达式变得更糟糕:
caption
有时会alt
之前发生?image
标记只包含ID标记这些(以及更多)方面决定了您的正则表达式解决方案的复杂性。 您需要一个双循环才能获得所有必需的数据。
(<image[^>]+)>
(假设属性值中没有>
个字符)image
代码中,使用此代码:[ ]+([a-zA-Z0-9]+)="([^"]*)"
我希望你已经看到这是非常混乱的,并且没有涵盖所有有效xml 的情况!
xml解析器始终是正确的方法。