java正则表达式替换除br以外的所有html标记
我需要一个正则表达式,它可以与replaceall一起使用,用空字符串替换所有html标记,除了br的任何变体,以保持换行符java正则表达式替换除br以外的所有html标记,java,regex,Java,Regex,我需要一个正则表达式,它可以与replaceall一起使用,用空字符串替换所有html标记,除了br的任何变体,以保持换行符 我发现以下内容可以替换所有html标记 ]如果已知HTML有效,则可以使用此正则表达式(不区分大小写): 更新:我刚刚意识到,即使对于有效的HTML,上述内容也有一些主要限制。例如,它将错误地处理类似(将其转换为)的内容。如果已知HTML有效,则可以使用此正则表达式(不区分大小写): 更新:我刚刚意识到,即使对于有效的HTML,上述内容也有一些主要限制。例如,它会错误
我发现以下内容可以替换所有html标记
]如果已知HTML有效,则可以使用此正则表达式(不区分大小写):
更新:我刚刚意识到,即使对于有效的HTML,上述内容也有一些主要限制。例如,它将错误地处理类似
(将其转换为)的内容。如果已知HTML有效,则可以使用此正则表达式(不区分大小写):
更新:我刚刚意识到,即使对于有效的HTML,上述内容也有一些主要限制。例如,它会错误地处理类似于
(将其转换为)的内容。您可能会得到一些声称有效的答案
这些答案甚至可能适用于您所针对的特定案例
但是要知道,正则表达式(我一般都喜欢)在这种情况下是错误的工具
随着项目的发展,需要覆盖更复杂的HTML输入,正则表达式将变得越来越复杂,很可能有一天它将无法解决您的问题
从一开始就使用正确的方法。使用HTML解析器,而不是正则表达式
以下是一些相关的SO帖子供参考:
- -博宾斯说得比我更透彻(:
你可能会得到一些声称有效的答案
这些答案甚至可能适用于您所针对的特定案例
但是要知道,正则表达式(我一般都喜欢)在这种情况下是错误的工具
随着项目的发展,需要覆盖更复杂的HTML输入,正则表达式将变得越来越复杂,很可能有一天它将无法解决您的问题
从一开始就使用正确的方法。使用HTML解析器,而不是正则表达式
以下是一些相关的SO帖子供参考:
- -博宾斯说得比我更透彻(:
改用HTML DOM解析器。正则表达式不能涵盖HTML标记可能出现的所有可能性。还有@hovercraftfullofels,你考虑过Tony the Pony吗?我发现以下内容可以替换所有HTML标记]@JonathanM:我不认为这是真的。单个HTML标记没有任何递归嵌套,或者类似的东西;我不明白为什么regex无法与之匹敌。@ruakh,这里最接近的人是著名的Tom Christ,他在Perl中使用了多个复杂的正则表达式。但是如果你阅读全文,他说这不是解决问题的最佳方法。不要被他的标题所愚弄。他很清楚这是个坏主意。@JonathanM:Re:这是个坏主意a:哦,很明显,没有人不这么说!;-)但是你说这是不可能的。改用HTML DOM解析器。正则表达式不能涵盖HTML标记可能出现的所有可能性。还有@HovercraftFullOfEels,你考虑过Tony the Pony吗?我发现以下内容可以替换所有HTML标记]@JonathanM:我不认为这是真的。一个HTML标记没有任何递归嵌套,或者其他任何东西我不明白为什么正则表达式不能与之匹配。@ruakh,这里最接近的人是著名的Tom Christ,他在Perl中使用了多个复杂的正则表达式。但是如果你阅读全文,他说这不是解决这个问题的最佳方法。不要被他的标题所愚弄。他很清楚这是个坏主意@乔纳桑:Re:这是个坏主意:嗯,很明显,没有人会这么说!;-)但是你说这是不可能的+1表示不重新发明轮子…除非这是一项任务+1表示不重新发明轮子…除非这是一项任务。哇。博宾斯说服了我。我觉得有必要祈祷。哇。博宾斯说服了我。我觉得有必要祈祷。
<(?!br\b)/?[a-z]([^"'>]|"[^"]*"|'[^']*')*>