在我为其创建测试的Web应用程序中,有两组字符串,我希望从中获取用于在网页上标识该元素的子字符串(这是唯一的):
父母表格:
InputText-eLeType-AQAAAAAAAAAAAAAAAAAAAVWZ-bMs-bms_9999999_3512-bMs-obj-bMsDot-com-bMsDot-bmssolutions-bMsDot-COMPONENT-bMsDot-bms_9999999_109-bMs-textField-bMs-ABNylGGXXu8IPwjI4jMM5y1K
SubForm:
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不起作用。
所以,我的主要问题是,是否可以创建一些RegEx来从完整字符串中仅提取该字符串(由字母[大写和小写]和数字组成)?或者其他一些更简单的方法来识别那个字符串?
答案 0 :(得分:0)
您可以尝试positive Lookbehind
,[A-Z]
和[a-z]
的组合。试试这段代码:
(?<=-bMs-)[A-Z]{3}[a-z]\w+
演示:https://regex101.com/r/YUZiFa/1
似乎没有positive Lookbehind
[A-Z]{3}[a-z]\w+
答案 1 :(得分:0)