Я пытаюсь получить номера Telefon (немецкий формат) с немецких веб-сайтов через регулярное выражение с API-интерфейсом Selenium Web driver. Моя проблема в том, что я получаю некоторые ложные срабатывания, которые пока не могу исключить. Может ли кто-нибудь помочь мне оптимизировать регулярное выражение? Так что я точно знаю, что у меня есть 100% телефонный номер. В коде Impressum - это, как правило, имя для контактной информации, поэтому я ищу это слово «Impressum» на веб-сайте, а затем нажимаю на него и затем загружаю HTML-текст в виде строки. Затем я использую регулярное выражение для поиска телефонных номеров в теле html. Спасибо.
public void search() {
jse = (JavascriptExecutor) driver;
WebElement w = driver.findElement(By.partialLinkText("mpress"));
if (w.getText().matches("Impressum" ) || w.getText().matches("impressum")){
w.click();
}
impressum.setBody(driver.findElement(By.tagName("body")).getText()); // HTML-body download
}
@SuppressWarnings("Duplicates")
public void TelRegex() {
final String regex = "([\\+][0-9]{1,3} [ \\.\\-\\/])? ([\\(][0-9]{1,6}[\\)])? ([0-9 \\.\\-\\/]{10,20})$";
final String string = impressum.getBody();
final Pattern pattern = Pattern.compile(regex, Pattern.MULTILINE | Pattern.CASE_INSENSITIVE | Pattern.COMMENTS);
final Matcher matcher = pattern.matcher(string);
while (matcher.find()) {
System.out.println("Full match: " + matcher.group(0));
}
}
В коде Impressum - это обычно имя для контактной информации, поэтому я ищу это слово «Impressum» на веб-сайте, а затем нажимаю на него, а затем загружаю HTML-текст в виде строки. Затем я использую регулярное выражение для поиска телефонных номеров в теле html. Он дает мне номера телефонов, но иногда есть и другие номера, которые не являются номерами телефонов.