我正在尝试使用Selenium IDE从电子邮件中提取确认代码或字符串。我能够提取我想要的东西,但我必须分3步完成。请问如何将这3个步骤合并为1?
例如:尝试在关键字“确认代码:”
之后提取任意6个字符 亲爱的先生..............
Confirmation Code : ABc2E1
.......
.......
我提取它的愚蠢方法....:p
storeText | Emaillocater | EmailContent
storeEval | storedVars['EmailContent'].match(/Confirmation code: +([A-Za-z0-9]*){6}/) | code
-- It will get "Confirmation Code : ABc2E1," --
storeEval | "${code}".replace("Confirmation code: ","") | code
-- It will get "ABc2E1," --
storeEval | "${code}".replace(",","") | code
-- It will get "ABc2E1" --
感谢您的帮助
答案 0 :(得分:1)
//正如我从您的描述的第一点所理解的那样,我们以“确认码:ABc2E1”的格式给出了字符串。 1)在我看来,我们可以采用两种不同的方式(regExp方式和非regExp方式)。所以非regExp方式:
String input = "Confirmation Code : ABc2E1,", extracted;
extracted = input.substring(input.indexOf(':'),input.lastIndexOf(','));
extracted.trim();
2)第二种方式(regExp方式): 你应该能够使用非贪婪的量词,特别是* ?.你可能想要以下内容:
模式MY_PATTERN = Pattern.compile(“/ ^ \ w {3} \ d \ w \ d $ /”); 这将为您提供一个与您的字符串匹配的模式(似乎是正确的)。有关详细信息,请查看Pattern API Documentation。
要提取字符串,您可以使用以下内容:
Matcher m = MY_PATTERN.matcher("Confirmation Code : ABc2E1,");
while (m.find()) {
String s = m.group(1);
// s now contains "ABc2E1"
}
您可以获得一些其他信息here