我有一个正则表达式来从 HTML 字体标签中提取文本:
<FONT FACE=\"Excelsior LT Std Bold\"(.*)>(.*)</FONT>
在我有一些嵌套的字体标签之前,这一切都很好。而不是匹配
<FONT FACE="Excelsior LT Std Bold">Fett</FONT>
字符串的结果
<FONT FACE="Excelsior LT Std Bold">Fett</FONT> + <U>Unterstrichen</U> + <FONT FACE="Excelsior LT Std Italic">Kursiv</FONT> und Normal
is
<FONT FACE="Excelsior LT Std Bold">Fett</FONT> + <U>Unterstrichen</U> + <FONT FACE="Excelsior LT Std Italic"
如何只获取第一个标签?
您需要禁用贪婪匹配.*?
代替.*
.
<FONT FACE=\"Excelsior LT Std Bold\"([^>]*)>(.*?)</FONT>
请注意,如果存在类似这样的属性,这将会失败BadAttribute="<FooBar>"
之后的某个地方FACE
属性为<FONT>
标签。这将混合两个匹配组,如果属性包含,则可能会完全混乱</FONT>
。没有办法解决这个问题,因为正则表达式无法计算匹配的标签或引号。所以我完全同意 Tomalak 的观点——尽量避免使用正则表达式来处理 XML、HTML 和其他类似的标记语言。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)