我有雪花POSIX BRE引擎,并希望从给定的文本提取下面的子字符串。POSIX不支持向后和向前。请帮助正则表达式。
示例1:2022 CKL04 TER-专业:CPT-刷新PRD|需要的NPR子字符串:CPT-刷新PRD
示例2:2022 CA4A TER-PRO:所需的CPT-刷新PRD子字符串:CPT-刷新PRD
示例3:2022 CDDR4A TER-PRO:CPT-租赁PRD|微电脑|所需的LQPRI13子字符串:CPT-租赁PRD
示例4:2022 CAP04A TER-PRO:产品|需要的NPR子字符串:产品
示例5:2022 CS040 TER-PRO:MS-PRD和SVC年度|需要的NPR子字符串:MS-PRD和SVC年度
我需要后面的所有字符:在第一次之前|如果没有,则返回字符串末尾|可用。
我可以使用这个正则表达式(?〈=:).+?(?=||$),但我需要POSIX BRE的解决方案,不需要前瞻和前瞻
1条答案
按热度按时间dpiehjr41#
逻辑是从
:
开始,然后继续捕获此后的所有内容,除非遇到|
,此时我们就到此为止。我使用的是捕获组,因此不包括前面的: