Python如何提取字符串首个数字前的内容以获取国家名称
匹配逻辑
观察所有文本行的共性特征:国家名称后必然跟随两类分界符之一:
- 空格+数字(整数/浮点数都适用)
- 空格+横杠
-
只要提取每行开头到第一个分界符之前的内容,即可得到完整国家名。
不同工具实现方案
1. 通用正则表达式规则
核心匹配规则(支持所有兼容PCRE正则的工具):
^(.+?)(?=\s*\d|\s+-)
2. 终端快速处理(grep实现)
直接读取文本文件提取的命令:
grep -oP '^(.+?)(?=\s*\d|\s+-)' 目标文件名.txt
执行后输出结果:
United States of America United Kingdom Russia
3. Python代码实现
import re text_lines = [ "United States of America 1999 - some text here", "United Kingdom 2001.1 - some more text here", "Russia - Some extra text here" ] match_rule = r'^(.+?)(?=\s*\d|\s+-)' for line in text_lines: country_name = re.match(match_rule, line).group(1) print(country_name)
国家名对应中文通用译法
- 美国(全称为美利坚合众国)
- 英国(全称为大不列颠及北爱尔兰联合王国)
- 俄罗斯(全称为俄罗斯联邦)
内容的提问来源于stack exchange,提问作者Maamoun Ahmed
相关产品推荐
相关产品推荐

