Я хочу найти regx и его появление в источнике страницы, используя язык Java. Значение, которое я пытаюсь выполнить, приведено в приведенной ниже программе. Между тегами может быть одно или несколько пробелов. Я не могу создать regx для этого значения. Может кто-нибудь, пожалуйста, помогите мне найти regx для этой ценности? Моя программа, которая проверяет regx, как указано below-
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
явно не будет компилироваться, как есть.
Вы должны использовать двойные кавычки (\"
) и двойные escape-символы (т.е. \\?
) Для вашего кода и вашего 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 для HTML) вместо регулярного выражения.
Pattern
! Вы можете удалить двойной String.contains
и String.indexOf
попытку с String.contains
или String.indexOf
...
count(\\img[@height="1" and @width="1" and ...])