2012-09-25 74 views
0

我想從使用Selenium IDE的電子郵件中提取確認代碼或字符串。我能夠提取我想要的東西,但我必須分三步完成。請問我該如何將這3個步驟合併爲1?Selenium IDE正則表達式:如何在關鍵字後提取字符串

例如:嘗試關鍵字 「確認碼」 後,任何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

//因爲我從你的描述的第一點的理解,我們給出了格式字符串「確認代碼:ABc2E1,」 1)在我看來,我們可以採取兩種不同的方式(regExp方式和非regExp方式)。因此,非正則表達式的方法:

String input = "Confirmation Code : ABc2E1,", extracted; 
extracted = input.substring(input.indexOf(':'),input.lastIndexOf(',')); 
extracted.trim(); 

2)第二種方式(正則表達式的方式): 你應該能夠使用非貪婪量詞,特別是*?您可能需要以下內容:

模式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

相關問題