繁体   English   中英

需要帮助以Java形式形成正则表达式

[英]Need help to form a regex in java

我想使用Java语言在页面源中找到一个regx及其出现的地方。 我要搜索的值如下程序所示。 标签之间可能有一个或多个空格。 我无法为此值形成一个regx。 有人可以帮我找到这个值的正则表达式吗? 我检查regx的程序如下所示-


String regx=""<img height=""1"" width=""1"" style=""border-style:none;"" alt="""" src=""//api.adsymptotic.com/api/s/trackconversion?_pid=12170&_psign=3841da8d95cc1dbcf27a696f27ccab0b&_aid=1376&_lbl=RT_LampsPlus_Retargeting_Pixel""/>";

WebDrive driver = new FirefoxDriver();
driver.navigate().to("abc.xom");
int count=0, found=0;
source = driver.getPageSource();
source = source.replaceAll("\\s+", " ").trim();
pattern = Pattern.compile(regx);
matcher = pattern.matcher(source);

while(matcher.find())
{   
    count++;
    found=1;
}   
if(found==0)
{   
    System.out.println("Maximiser not found");
    pixelData[rowNumber][2] = String.valueOf(count) ;
    pixelData[rowNumber][3] = "Fail";
}   
else
{   
    System.out.println("Maximiser is found" + count);
    pixelData[rowNumber][2] = String.valueOf(count) ;
    pixelData[rowNumber][3] = "Pass";

}   
count=0; found=0;

没有原始文本和预期结果很难说,但是您的Pattern显然不会按原样编译。

您应该对代码 Pattern进行单转义双引号( \\" )和双转义特殊字符(即\\\\? )。

符合以下条件的东西:

String regx="<img height=\"1\" width=\"1\" style=\"border-style:none;\" " +
            "alt=\"\" src=\"//api.adsymptotic.com/api/s/trackconversion" +
            "\\?_pid=12170&_psign=3841da8d95cc1dbcf27a696f27ccab0b" +
            "&_aid=1376&_lbl=RT_LampsPlus_Retargeting_Pixel\"/>";

还可以考虑使用适当的框架(即JSoup for HTML)而非正则表达式来抓取标记。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM