在我为其创建测试的web应用程序中,有两组字符串,我希望从中获得一个子字符串(唯一的),用于在Web页面上标识该元素:
父窗体:
InputText-eLeType-AQAAAAAAAAAAAAAAAAAAAVWZ-bMs-bms_9999999_3512-bMs-obj-bMsDot-com-bMsDot-bmssolutions-bMsDot-COMPONENT-bMsDot-bms_9999999_109-bMs-textField-bMs-ABNylGGXXu8IPwjI4jMM5y1KSubForm:
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该子字符串可以随网页上的每个元素而变化,但对于页面的每个元素都是唯一的,因此对识别非常有用。
我不能使用完整的字符串,因为它会随着每个环境的变化而变化,或者如果我生成一个新的环境来托管web页面(完整的字符串取决于元数据)。
我们尝试对父窗体执行此操作,使用"-“作为分隔符,识别最后一个-bMs-,然后获取字符串,但这对SubForm不起作用。
所以,我的主要问题是,是否可以创建一些RegEx来从完整字符串中仅提取该字符串(由字母、大小写和数字组成)?或者其他更简单的方法来识别该字符串?
发布于 2016-11-25 10:27:40
您可以尝试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+https://stackoverflow.com/questions/40796225
复制相似问题