繁体   English   中英

正则表达式捕获重复的组

[英]Regular expression capturing a repeated group

我正在尝试使用正则表达式解析输入字符串。 尝试捕获重复的组时出现问题。 我似乎总是在匹配该组的最后一个实例。 我曾尝试使用“不情愿”(非贪婪)量词,但似乎遗漏了一些东西。 有人可以帮忙吗?

正则表达式尝试:

(OS)\\s((\\w{3})(([A-Za-z0-9]{2})|(\\w{3})(\\w{3}))\\/{0,1}){1,5}?\\r

(OS)\\s((\\w{3}?)(([A-Za-z0-9]{2}?)|(\\w{3}?)(\\w{3}?))\\/{0,1}?){1,5}?\\r

输入字符串:

OS BENKL/LHRBA/MANQFL\r\n

我似乎总是捕获最后一个组,即MANQFL组(MAN QFL) ,我的目标是使所有三个组(可能有1-5个组):

(BEN KL) , (LHR BA) and (MAN QFL). 

任何帮助将不胜感激。

当您在正则表达式中重复捕获组时,捕获组仅存储上一次迭代匹配的文本。 如果需要捕获多个迭代,则需要使用多个正则表达式。 (.NET是唯一的例外。它的CaptureCollection提供捕获组的所有迭代的匹配项。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM