首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当唯一字符串位于两个不同的位置时,从较长的字符串中获取唯一字符串

当唯一字符串位于两个不同的位置时,从较长的字符串中获取唯一字符串
EN

Stack Overflow用户
提问于 2016-11-25 08:42:59
回答 2查看 43关注 0票数 0

在我为其创建测试的web应用程序中,有两组字符串,我希望从中获得一个子字符串(唯一的),用于在Web页面上标识该元素:

父窗体:

代码语言:javascript
复制
InputText-eLeType-AQAAAAAAAAAAAAAAAAAAAVWZ-bMs-bms_9999999_3512-bMs-obj-bMsDot-com-bMsDot-bmssolutions-bMsDot-COMPONENT-bMsDot-bms_9999999_109-bMs-textField-bMs-ABNylGGXXu8IPwjI4jMM5y1K

SubForm:

代码语言:javascript
复制
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个字符串中的子字符串为:

代码语言:javascript
复制
ABNylGGXXu8IPwjI4jMM5y1K

该子字符串可以随网页上的每个元素而变化,但对于页面的每个元素都是唯一的,因此对识别非常有用。

我不能使用完整的字符串,因为它会随着每个环境的变化而变化,或者如果我生成一个新的环境来托管web页面(完整的字符串取决于元数据)。

我们尝试对父窗体执行此操作,使用"-“作为分隔符,识别最后一个-bMs-,然后获取字符串,但这对SubForm不起作用。

所以,我的主要问题是,是否可以创建一些RegEx来从完整字符串中仅提取该字符串(由字母、大小写和数字组成)?或者其他更简单的方法来识别该字符串?

EN

回答 2

Stack Overflow用户

发布于 2016-11-25 10:27:40

您可以尝试positive Lookbehind[A-Z][a-z]的组合。尝试以下代码:

代码语言:javascript
复制
(?<=-bMs-)[A-Z]{3}[a-z]\w+

演示:https://regex101.com/r/YUZiFa/1

即使没有positive Lookbehind,它似乎也能工作

代码语言:javascript
复制
[A-Z]{3}[a-z]\w+

演示:https://regex101.com/r/YUZiFa/2

票数 0
EN

Stack Overflow用户

发布于 2016-11-25 10:56:55

如果您乐于根据前一个元素选择元素,那么这可能适用于您:

代码语言:javascript
复制
(?<=searchLookupField-bMs-|textField-bMs-)\w+

Example

如果您想要额外确定,可以在末尾添加第二个先行检查。

代码语言:javascript
复制
(?<=searchLookupField-bMs-|textField-bMs-)\w+(?=-bMs-|$)

Example

如果这些都不起作用,或者如果整个字符串变化很大,那么更多的例子将帮助我们缩小范围,并提出一个很好的答案!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40796225

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档