Нужна помощь, чтобы сформировать регулярное выражение в Java

1

Я хочу найти 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;
  • 0
    XPath должен быть более подходящим, чем regex в вашем случае :) На моей голове что-то вроде count(\\img[@height="1" and @width="1" and ...])
  • 0
    Ваш код не компилируется
Теги:
selenium-webdriver

1 ответ

1
Лучший ответ

Трудно сказать без оригинального текста и ожидаемого результата, но ваш 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) вместо регулярного выражения.

  • 0
    Спасибо, Мена. Я попробовал, но это не сработало :(. Я проверю JSoup. Но я проверяю другое значение - <script src = "/ scripts / marketing / mmcore.js"> </ script>, которое работает нормально.
  • 0
    @ ForTesting, пожалуйста. С таким длинным запросом и отсутствием информации по всему тексту вам трудно помочь. Также учтите, что в этом случае вы ищете литерал, так как вам может не понадобиться Pattern ! Вы можете удалить двойной String.contains и String.indexOf попытку с String.contains или String.indexOf ...
Показать ещё 2 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню