如何在字符串中搜索多个字符?

2024-10-08 18:22:04 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图从一个有很多空格的页面中提取信息,所以我非常想搜索任何一个字母并得到它的位置,而不仅仅是一个字母。如何做到这一点?你知道吗

编辑:我想在这个网站http://www.aviationweather.gov/static/adds/metars/stations.txt上搜索一个用户输入的城市,比如说安克雷奇。然后程序将搜索锚地。然后我想抓取接下来的四个字母,但是txt的格式城市和四个字母代码之间的空格数对于每个城镇是不同的。你知道吗


Tags: txt信息http编辑网站www字母static
2条回答

看起来您正在解析一个固定宽度的结构,^{}模块在这里很方便。有关示例,请参见this answer。你知道吗

您要做的是为记录定义格式字符串,然后调用struct.unpack将其转换为一个值元组。您可以将其与namedtuple定义配对,使事物可以通过名称访问。仅使用前几个的有限示例:

from collections import namedtuple
from struct import unpack

Weather = namedtuple('Weather', 'cd station icao iata')  # define the fieldnames
metar_fmt = '2s x 16s x 4s xx 3s xx'  # 's' represents string, 'x' is "ignore"
w = Weather._make(struct.unpack(metar_fmt, 'AK ANCHORAGE INTL   PANC  ANC  '))

# now you can use your namedtuple by fieldname:
print w.cd, w.station, w.icao, w.iata
if w.station.startswith('ANCHORAGE'):
    print w.icao

你可以用

listed = text.split()

在所有空白处分隔文本。 然后您将有一个只包含字符的列表。你知道吗

citypos = listed.index("Anchorage")
code = listed[citypos+1][:4]

要搜索字母和数字,请执行以下操作:

positions = []
y = 0
for x in text:
    if x.isalnum(): positions.append(y)
    y += 1

这就是你编辑问题之前的样子。你知道吗

相关问题 更多 >

    热门问题