Java正则表达式:匹配含冒号的命令分段问题
正则表达式匹配冒号标记的命令段
核心解决方案
直接使用以下正则表达式即可一次性匹配所有目标分段:
\w+:.*?(?=\s+\w+:|$)
匹配逻辑拆解
\w+::精准匹配每个分段的起始标识(单词+冒号,比如charlie:、golf:).*?:非贪婪模式匹配后续内容,避免跨分段过度匹配(?=\s+\w+:|$):正向预查边界,确保匹配截止到下一个分段的起始(空格+单词+冒号)或字符串结尾
实际效果验证
给定输入字符串:alfa bravo charlie:delta echo foxtrot golf:hotel india juliett: kilo
执行匹配后会直接得到三个目标结果:
charlie:delta echo foxtrotgolf:hotel indiajuliett: kilo
如果需要将每个结果单独捕获为分组,可给整个表达式添加括号:
(\w+:.*?(?=\s+\w+:|$))
内容的提问来源于stack exchange,提问作者maxy
相关产品推荐
相关产品推荐

