Java 试图取代<;br>&书信电报;BR>&书信电报;br+;属性>;带有<;br/>;
我正在尝试将一堆HTML文档转换为XML遵从性(通过java方法),并且有许多Java 试图取代<;br>&书信电报;BR>&书信电报;br+;属性>;带有<;br/>;,java,regex,Java,Regex,我正在尝试将一堆HTML文档转换为XML遵从性(通过java方法),并且有许多标记(1)未关闭或(2)包含属性。出于某种原因,我使用的正则表达式没有处理包含属性的标记。代码如下: htmlString = htmlString.replaceAll("(?i)<br *>", "<br/>"); htmlString=htmlString.replaceAll(“(?i)”,“”); 此代码适用于文档中的所有标记;它将它们替换为。但是,对于像 <BR style
标记(1)未关闭或(2)包含属性。出于某种原因,我使用的正则表达式没有处理包含属性的标记。代码如下:
htmlString = htmlString.replaceAll("(?i)<br *>", "<br/>");
htmlString=htmlString.replaceAll(“(?i)
”,“
”);
此代码适用于文档中的所有
标记;它将它们替换为
。但是,对于像
<BR style="PAGE-BREAK-BEFORE: always" clear=all>
它没有任何作用。我希望所有br标记都是
,而不管转换前标记中的任何属性
要实现这一点,我需要向正则表达式中添加什么?您可能希望]*>
匹配所有需要的标记
- 从
开始,您可能希望
匹配所有]*>
- 从
开始,您必须使用
而不是*
:*
输出htmlString.replaceAll("(?i)<br .*>", "<br/>") //-----------------------------^^
<br/>
您必须使用
而不是*
:*
输出htmlString.replaceAll("(?i)<br .*>", "<br/>") //-----------------------------^^
<br/>
此正则表达式将执行您想要的操作:
]*>
下面是一个工作示例:此正则表达式将执行您想要的操作:]*>
下面是一个工作示例:使用正则表达式解析HTML不是一个好主意,因为HTML不是正则的。您应该使用适当的解析库,如 NekoHTML是一个简单的HTML扫描程序和标记平衡器,它支持 应用程序程序员解析HTML文档并访问 使用标准XML接口的信息。解析器可以扫描HTML 文件和“修复”许多人类(和计算机)经常犯的错误 作者在编写HTML文档时会遇到困难。NekoHTML添加缺少的父级 元素;使用可选的结束标记自动关闭图元;和 可以处理不匹配的内联元素标记
使用正则表达式解析HTML不是一个好主意,因为HTML不是正则的。您应该使用适当的解析库,如 NekoHTML是一个简单的HTML扫描程序和标记平衡器,它支持 应用程序程序员解析HTML文档并访问 使用标准XML接口的信息。解析器可以扫描HTML 文件和“修复”许多人类(和计算机)经常犯的错误 作者在编写HTML文档时会遇到困难。NekoHTML添加缺少的父级 元素;使用可选的结束标记自动关闭图元;和 可以处理不匹配的内联元素标记
不是个好主意。这种模式对Lorem ipsum dolor sit amet有什么影响?*
不是一个好主意。这一模式对Lorem ipsum dolor sit amet有什么影响?*
- 从