【发布时间】:2019-10-07 15:28:36
【问题描述】:
我下面有一个长字符串,
'海拔信息:海拔范围:\xa05680 - 5720 ft\xa0\xa0\xa0\xa0(40 英尺闭合轮廓) NAVD88 高程:\xa05683 ft / 1732 m\xa0\xa0\xa0\xa0(范围 5683 - 5723 ft)纬度/经度 (WGS84)32° 56\' 17\'\' N, 116° 29\' 9\'\' W32.938182, -116.485858 (Dec Deg)548063 E 3644551 N, Zone 11 (UTM)CountryUnited 州州/省加利福尼亚(最高点) 县/二级地区三 Diego链接搜索引擎 - 在网络上搜索“Garnet Mountain”
我想通过正则表达式获取“美国”、“加利福尼亚(最高点)”、“圣地亚哥”等词。
我厌倦了通过下面的代码找到“美国”和“圣地亚哥”,但结果为空
country = re.findall(('Country\S([A-z]*)\SState'),table.text)
country
region = re.findall(('Region\S(.)\SLinks'),table.text)
region
我如何使用 re 来提取所有这些单词?
另外,如果 'United States' 被替换为 eg.'Japan'/'France'
country = re.findall(('Country\S([A-z]*)\SState'),table.text)
country
输出是“apan”/“rance”。为什么它们不是一个完整的单词。
谢谢!
【问题讨论】:
-
请告诉我们您的 Python 脚本的编码是什么。
-
@Tim Biegeleisen 它应该是 utf8
-
如果国家/地区中有空格
([A-z]*)并且它仅匹配区域的一个字符(.),则该组(括号中的部分)将不匹配。\S匹配任何不是空白字符且您没有将其包含在组中的字符,因此第一个字符被剪切(最后一个不是因为它是“贪婪”匹配)。
标签: regex python-3.x beautifulsoup