替换Java中

时间:2017-03-04 20:08:38

标签: java

首次在这里编写Java,所以请耐心等待:P我正在尝试用Java创建一个打开html文件并编辑它的程序,以便它删除所有的html标签,但只删除它们而不是其他所有内容。我假设文件已经存在,我不需要创建它。 现在我一直在处理一个包含html代码的.txt文件,以便让我更快地开始。 到目前为止,我已经设法编辑该文件,以便它只是删除html标记并替换它什么都没有。然而,我真正想要的是删除开口和关闭括号内的任何东西。我将展示一个我需要的例子:

<html>
<body>
<p> blah blah blah 
</p> 
</body> 
</html>

我的程序执行完后,txt文件中应该只有“blah blah blah”。 为了替换标签,我使用:

    if(myString.contains("<html>"))
        {
          // do stuff
         }

所以这是我的问题:在java中有类似于转义字符的东西允许我说:

if(myString.contains("<") && it is followed by as many characters as the file wants by (">") )
//then remove everything in between them.

为了我们的思想,我们假设.txt文件中的html代码没有错误。如果你想要我,我会发布代码,但它的结构非常糟糕,我认为它不会帮助你们理解我在做什么。那是因为我一直在尝试很多事情而且我保留了我认为有用的任何评论。谢谢你的时间!

3 个答案:

答案 0 :(得分:1)

您可以将String.replaceAll与正则表达式一起使用。

"<html><p>foo bar</p></html>".replaceAll("</?[A-Za-z]+>", "");

结果:

foo bar

但是,请注意不要尝试使用正则表达式解析HTML。

答案 1 :(得分:1)

使用JSoup,您可以非常简单地删除HTML页面中的所有标记:

Jsoup.parse(myString).text()

答案 2 :(得分:1)

尝试使用这样的正则表达式。 这里以&lt;开头的任何字符串并以&gt;结尾并且包含这两个尖括号内的任何字符都将被替换为空字符串,因此您的代码将保持bla bla ...

str = str.replaceAll("<.*>", "");

您可以测试regex here