2016-11-25 154 views
0

在我創建測試的Web應用程序中,有2組字符串,我希望從中獲取子字符串(它是唯一的)用於標識的網頁元素:當唯一字符串位於2個不同位置時,從較長字符串獲取唯一字符串

父窗體:

InputText-eLeType-AQAAAAAAAAAAAAAAAAAAAVWZ-bMs-bms_9999999_3512-bMs-obj-bMsDot-com-bMsDot-bmssolutions-bMsDot-COMPONENT-bMsDot-bms_9999999_109-bMs-textField-bMs-ABNylGGXXu8IPwjI4jMM5y1K 

子窗體:

InputText-eLeType-AQAAAAAAAAAAAAAAAAAAAVXJ-bMs-bms_FK_9999999_406_ID-bMs-obj-bMsDot-com-bMsDot-bmssolutions-bMsDot-COMPONENT-bMsDot-bms_9999999_177-bMs-searchLookupField-bMs-ABNylGGXXu8IPwjI4jMM5y1K-bMs-AQAAAAAAAAAAAAAAAAAAAVWZ-bMs-PRIMARY9999999_480-bMs-obj-bMsDot-com-bMsDot-bmssolutions-bMsDot-COMPONENT-bMsDot-bms_9999999_109 

我想用一個單一的功能,從這兩得到子,這樣我不必爲每個類型創建不同的功能我遇到:

子串在上述2名中提供的字符串是:

ABNylGGXXu8IPwjI4jMM5y1K 

此子可以對網頁上的每個元件變化,但對頁面的每個元素都是唯一的,因此很有用。

我不能使用完整的字符串,因爲它會改變每個環境,或者如果我生成一個新的環境來託管網頁(完整的字符串取決於元數據)。

我們嘗試使用「 - 」作爲分隔符並標識最後一個-bMs,然後採用該字符串,但對SubForm不起作用。

所以,我的主要問題是,是否可以創建一些正則表達式來從完整字符串中僅提取該字符串(由小寫字母[小寫字母[小寫字母] [&小寫]和數字組成)?或者其他更簡單的方法來識別該字符串?

回答

0

如果你很高興基地的選擇上一個元素,那麼這可能適合你:

(?<=searchLookupField-bMs-|textField-bMs-)\w+ 

Example

如果你想成爲額外的肯定,你可以添加第二個先行到最後。

(?<=searchLookupField-bMs-|textField-bMs-)\w+(?=-bMs-|$) 

Example

如果這些不工作,或者如果整個字符串良莠不齊,那麼一些例子將幫助我們縮小下來,並拿出一個偉大的答案!

相關問題