繁体   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