如何用正则表达式从贪婪匹配中排除SCHEDULED提取目标内容?
正则提取城市名解决方案
输入文本
:CITYNAMEONE SCHEDULED :CITY NAME TWO :CITYNAMETHREE
问题说明
需要提取每行中冒号后的城市名称,排除第一行末尾的SCHEDULED,之前尝试的正则无法同时匹配所有行并正确排除关键词。
可行正则表达式
方案一(非贪婪匹配+正向预查):
:([A-Z\s]+?)(?=\sSCHEDULED|$)逻辑:用非贪婪模式匹配大写字母和空格,直到遇到
SCHEDULED或行尾,确保不会包含SCHEDULED。方案二(精准匹配城市结构):
:(\S+(?:\s+\S+)*)(?:\sSCHEDULED)?逻辑:匹配由空格分隔的大写单词组成的城市名,最后可选跳过
SCHEDULED但不捕获,更贴合城市名的格式要求。
提取结果
CITYNAMEONE CITY NAME TWO CITYNAMETHREE
内容的提问来源于stack exchange,提问作者ck1mark
相关产品推荐
相关产品推荐

