在java中使用正则表达式匹配多行文本

时间:2016-06-12 05:14:07

标签: java regex pattern-matching

我的输入样本是:

<html xmlns:v="urn:schemas-microsoft-com:vml"
xmlns:o="urn:schemas-microsoft-com:office:office"
xmlns:w="urn:schemas-microsoft-com:office:word"
xmlns:m="http://schemas.microsoft.com/office/2004/12/omml"
xmlns="http://www.w3.org/TR/REC-html40">

<head>
<meta http-equiv=Content-Type content="text/html; charset=windows-1252">
<meta name=ProgId content=Word.Document>
<meta name=Generator content="Microsoft Word 15">
<meta name=Originator content="Microsoft Word 15">
<link rel=File-List href="detailedFoot_files/filelist.xml">

我想要做的是我想选择整个html标签并用一些东西替换它。所以我使用正则表达式

<html.*>

如果我以Mather.DOTALL方式使用此正则表达式,则替换整个文本输入。

我无法弄清楚该怎么做。任何形式的帮助将不胜感激。

2 个答案:

答案 0 :(得分:1)

这个正则表达式似乎捕获了你正在寻找的东西。

pattern = "\<html[^>]*>?(.*)"

<强> Sample Here

答案 1 :(得分:0)

如果您只想替换起始html标记,则以下内容将替换它:

String replaced = Pattern.compile("<html[^>]+>", Pattern.DOTALL)
    .matcher(input).replace("my replacement for html tag");