输入文本-
hey, G Suite , ,Social Media Wall, Social Media Wall , ERP ERP Corecon
查询-
((?<=[,-./\s])(ERP Corecon|Social Media|Social Media Wall|ROI|ERP)\b)
输出-
hey, G Suite , ,**Social Media** Wall, **Social Media** Wall , **ERP** **ERP Corecon**
理想输出-社交媒体和社交媒体墙应匹配
正则表达式链接-https://regexr.com/6ugr5
3条答案
按热度按时间goucqfw61#
您可以使用以下正则表达式:
RegEx Demo
正则表达式分解:
(?<=[,-./\s])
:LookbehindAssert当前位置之前存在这些字符(
;开始捕获组ERP(?: Corecon)?
:匹配ERP
或ERP Corecon
|
:或Social Media(?: Wall)?
:匹配Social Media
或Social Media Wall
|
:或ROI
:匹配ROI
)
:结束捕获组\b
:字边界omqzjyyz2#
您可以尝试使用命名组:
正如您所看到的,
SocialMedia
组嵌套在SocialMediaWall
组中,这是获取两个值的一种方法。whhtz7ly3#
你所有的解决方案都很有趣,但我最终将正则表达式查询排序为降序,其中较长的关键字排在第一位,因此永远不允许子字符串排在字符串之前。