正则匹配多条条目:如何提取字符串中所有法国地点信息?
正则调整方案
问题原因
- 原正则使用
^开头锚定,仅能匹配整个字符串的起始位置,而你的多条数据以;分隔,后续条目不在全局字符串开头,因此无法命中 - 未开启全局匹配模式,默认正则引擎仅返回第一个匹配到的结果
调整后正则
(?:^|;)[2-5]#(.*?)#FR#
匹配规则说明
(?:^|;):非捕获组,匹配位置为整个字符串开头或者分号之后,覆盖所有条目的起始位置[2-5]#(.*?)#FR#:保留你原有的匹配逻辑,提取国家为FR的条目对应的地点信息
使用注意
- 调用正则时需要开启全局匹配(g模式),才能返回所有符合条件的匹配结果
- 每个匹配结果的捕获组1就是你需要的法国地点全称,可直接提取到
Virsac, Aquitaine, France和Gironde, Aquitaine, France两个目标值
内容的提问来源于stack exchange,提问作者Thoms
相关产品推荐
相关产品推荐

