Selenium IDE正则表达式:如何在关键字后提取字符串

时间:2012-09-25 05:01:36

标签: regex selenium ide match

我正在尝试使用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" --

感谢您的帮助

1 个答案:

答案 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