簡體   English   中英

如何使用selenium web驅動程序從跨區文本中提取不是正則表達式格式的電子郵件地址?

[英]How to extract an email address which is not in a regular expression format from a span text using selenium web driver?

我正在開發一個自動化項目。我必須從span文本中獲取所有電子郵件地址,這些地址將包含200以上的字符。但是電子郵件地址不是正則表達式格式,而是顯示為Eg: - xxx(at)abc(dot)com aaa(at)yyy(dot)com

那么如何從下面的段落中提取這些內容

AAAAAAAAA AAAAAAA AAAAAAAAAAAA AAAAAAAA AAAAAAAA XXX(在)ABC(點)的COM BBBBBB BBBBBBBB bbbbbbbbbbbb bbbbbbbbbbbbbbbbbbb ggggggggggggg AAA(在)YYY(點)的COM ccccccccccccccc DDD CCC EEEEEE FFF GGGGG 11111(在)22222(點)的COM。

public class Foxpro_Class { 
    public static void main(String[] args)
    {
    String emailStr="aaaaaaaaa aaaaaaa aaaaaaaaaaaa aaaaaaaa aaaaaaaa xxx(at)abc(dot)com bbbbbb bbbbbbbb bbbbbbbbbbbb bbbbbbbbbbbbbbbbbbb ggggggggggggg aaa(at)yyy(dot)com ccccccccccccccc ddd ccc eeeeee fff ggggg 11111(at)22222(dot)com zzzzzz";

     validate(emailStr);



    }

    public static final Pattern VALID_EMAIL_ADDRESS_REGEX = 
            Pattern.compile("^[A-Z0-9._%+-]+(at)[A-Z0-9.-]+(dot)[A-Z]{2,6}$", Pattern.CASE_INSENSITIVE);

        public static boolean validate(String emailStr) {
                Matcher matcher = VALID_EMAIL_ADDRESS_REGEX .matcher(emailStr);

               System.out.println(matcher.toString());


                return matcher.find();
        }


    }

在問題中提供的文本中,每個單詞之間都有空格。 我們可以使用它將文本拆分為Array,然后我們可以將emailIds分開

// Find the span tag which contains text (at) and (dot) and get the text
Sting textInElement = driver.findElement(By.xpath("//span[contains(.,'(at)')][contains(.,'(dot)')]")).getText();

// Split the String based on space
String[] textRequired  = textInElement.split(" ");

// Iterate through array to print the array component containing (dot)  and (at) 
for (int i=0; i<string.length; i++) {
    if (string[i].contains("(at)")&&string[i].contains("(dot)"))
        System.out.println(string[i]);
}

這段代碼來自這里 ,我只做了很小的改動

public static final Pattern VALID_EMAIL_ADDRESS_REGEX = 
    Pattern.compile("^[A-Z0-9._%+-]+(at)[A-Z0-9.-]+(dot)[A-Z]{2,6}$", Pattern.CASE_INSENSITIVE);

public static boolean validate(String emailStr) {
        Matcher matcher = VALID_EMAIL_ADDRESS_REGEX .matcher(emailStr);
        return matcher.find();
}

讓我知道它是否有效。 如果你想要更多的幫助,如果它不符合你喜歡的一切,提供詳細的例子。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM