首页 > 解决方案 > 如何使用java从长字符串中删除特定的字符串值?

问题描述

String actualResource = driver.getPageSource();

实际资源输出是

<html><head><meta http-equiv="Content-Type" content="text/html" charset="UTF-8"></meta><link rel="stylesheet" type="text/css" href="Html_4d1b82e4-c90b-48ce-8640-3ab33abc7850.css"></link><script language="javascript" src="script.js"></script><script language="javascript"></script><link rel="stylesheet" type="text/css" href="script.css"></link></head><body><p class="paragraph_class4 Title"><span class="paragraph_class4 Title text_class2"><span>Testing</span></span></p><p class="paragraph_class5"><span class="paragraph_class5 text_class2"><span>Generated Tue Sep 21 2021 03:01:46 GMT-0400 (EDT)</span></span></p><p class="paragraph_class6"><h3 class="paragraph_class6 text_class7 3"><span>Work Items</span></h3></p><p class="paragraph_class6"><span class="paragraph_class6 text_class120"><span>Fixed WIs/Total WIs: </span></span><span class="paragraph_class6 text_class121"><span>29</span></span></body></html>

我需要从这个长字符串中删除“Generated Tue Sep 21 2021 03:01:46 GMT-0400 (EDT)”的值。生成的时间值与当前时间戳是完全动态的。

请帮助解决这个问题。

标签: javaseleniumselenium-webdriver

解决方案


好吧,我不是正则表达式专家,一个简单的正则表达式过滤掉

<span>Generated Tue Sep 21 2021 03:01:46 GMT-0400 (EDT)</span>

是:

public static void main(String[] args) {
        String pattern = "(<span>Generated).*\\(EDT\\)(</span>)";
        String longText = "<html><head><meta http-equiv=\"Content-Type\" content=\"text/html\" charset=\"UTF-8\"></meta><link rel=\"stylesheet\" type=\"text/css\" href=\"Html_4d1b82e4-c90b-48ce-8640-3ab33abc7850.css\"></link><script language=\"javascript\" src=\"script.js\"></script><script language=\"javascript\"></script><link rel=\"stylesheet\" type=\"text/css\" href=\"script.css\"></link></head><body><p class=\"paragraph_class4 Title\"><span class=\"paragraph_class4 Title text_class2\"><span>Testing</span></span></p><p class=\"paragraph_class5\"><span class=\"paragraph_class5 text_class2\"><span>Generated Tue Sep 21 2021 03:01:46 GMT-0400 (EDT)</span></span></p><p class=\"paragraph_class6\"><h3 class=\"paragraph_class6 text_class7 3\"><span>Work Items</span></h3></p><p class=\"paragraph_class6\"><span class=\"paragraph_class6 text_class120\"><span>Fixed WIs/Total WIs: </span></span><span class=\"paragraph_class6 text_class121\"><span>29</span></span></body></html>";

        final String s = longText.replaceAll(pattern, "");
        System.out.println(s);
    }

以上也将删除(空)<span></span>元素。但是,如果您希望它们完好无损并删除其中的文本,则可以将正则表达式更改为:

String pattern = "(Generated).*\\(EDT\\)";

推荐阅读