正则表达式需求:匹配TTE/IIE后重复代码及FTE后紧跟单词
解决FTE标识+TTE/IIE代码对的正则匹配问题
看你的需求是要从给定的混排文本里,不仅捕获每组TTE和IIE对应的代码,还要关联上前面最近的FTE后面紧跟的标识(比如YUY、GWU这类)。我帮你调整了正则表达式,能精准实现这个关联匹配的需求。
最终正则表达式
(FTE (\w+):)?\s*(TTE (.+?))\s*(IIE (.+?))(?:,|$)
正则各部分拆解说明
(FTE (\w+):)?:可选捕获组,专门匹配FTE后跟的标识单词(比如YUY),末尾的?表示这个组可能不出现(像那些RRNLIP开头的条目就没有FTE前缀)\s*:匹配任意数量的空白字符,用来兼容文本里的空格、换行(如果存在的话)(TTE (.+?)):捕获TTE及其后续的代码,.+?是非贪婪匹配,避免跨组抓取多个TTE/IIE内容(IIE (.+?)):同理,精准捕获IIE及其对应的代码(?:,|$):匹配每组的结束标记——要么是逗号,要么是文本末尾,确保每组内容被正确切割
匹配结果示例
针对你提供的文本,匹配后会得到这些核心有效捕获内容:
- 第一组:FTE标识
YUY,TTE代码H478-,IIE代码HL-315 - 第二组:FTE标识
YUY,TTE代码E581,IIE代码362 - 第三组:FTE标识
YUY,TTE代码A635,IIE代码150717 - 第四组:无FTE标识,TTE代码
478-3,IIE代码RRN751 - 第五组:FTE标识
GWU,TTE代码3820K,IIE代码HL1078 - 第六组:FTE标识
GWU,TTE代码581,IIE代码101 - 第七组:FTE标识
GWU,TTE代码A35-1,IIE代码66765 - 第八组:无FTE标识,TTE代码
47816-3,IIE代码RRN607
小提示
如果你的文本中FTE后面的标识可能包含非单词字符(比如连字符),可以把正则里的\w+改成[^:\s]+,这样就能匹配除冒号和空格之外的任意字符,适配更多场景。
内容的提问来源于stack exchange,提问作者TobSta
相关产品推荐
相关产品推荐

