Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
java正则表达式替换除br以外的所有html标记_Java_Regex - Fatal编程技术网

java正则表达式替换除br以外的所有html标记

java正则表达式替换除br以外的所有html标记,java,regex,Java,Regex,我需要一个正则表达式,它可以与replaceall一起使用,用空字符串替换所有html标记,除了br的任何变体,以保持换行符 我发现以下内容可以替换所有html标记 ]如果已知HTML有效,则可以使用此正则表达式(不区分大小写): 更新:我刚刚意识到,即使对于有效的HTML,上述内容也有一些主要限制。例如,它将错误地处理类似(将其转换为)的内容。如果已知HTML有效,则可以使用此正则表达式(不区分大小写): 更新:我刚刚意识到,即使对于有效的HTML,上述内容也有一些主要限制。例如,它会错误

我需要一个正则表达式,它可以与replaceall一起使用,用空字符串替换所有html标记,除了br的任何变体,以保持换行符


我发现以下内容可以替换所有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]([^"'>]|"[^"]*"|'[^']*')*>