regex - 正则表达式匹配多个条目
问题描述
我正在尝试从法国提取位置。这是一个示例:
1#Tunisia#TS#TS#34#9#TS;4#Virsac, Aquitaine, France#FR#FR97#45.0333#-0.45#-1477568;4#Gironde, Aquitaine, France#FR#FR97#44.584#-0.089244#-1429418
它基本上是一个城市、它的地区和它的国家。因此,我这样做了:
^[2-5]#(.*?)#FR#
结果是:
Gironde, Aquitaine, France
这会正确提取城市/地区/国家,但只会提取其中一个。是否可以提取多个条目?预期的结果是:
Virsac, Aquitaine, France
Gironde, Aquitaine, France
提前致谢,
解决方案
在当前模式的基础上,您需要将^
锚替换为单词边界构造(以确保2
、3
、4
或5
匹配为独立数字)并替换.*?
为[^#]*
以禁止匹配最右边的尾随分隔符模式。
也就是说,您可以使用
\b[2-5]#([^#]*)#FR#
请参阅正则表达式演示。详情:
\b
- 单词边界[2-5]
- 一个数字从2
到5
#
- 一个#
字符([^#]*)
- 第 1 组:零个或多个字符#
#FR#
- 一个#FR#
字符串。
推荐阅读
- mysql - MySQL 基于客户的不同字段计数
- javascript - 如何在 Input 中设置值并选择
- c++ - 替代获取标准库函数的地址/可能是格式错误的行为
- javascript - 创建一个数组,其中包含对特定数字求和所需的数字
- python - 使用 PIL (python) 将图像数据集加载到内存中会消耗太多内存
- php - 使用 PHP 检查 SSL 证书哈希
- c - scanf("%d/%d/%d) 在 C 中是什么意思?
- flutter - 如何在 Flutter 中访问 GridView 中特定项目的索引?
- javascript - 使用 react redux 探针获取异步数据
- php - 如何解决贪婪的正则表达式