3

我有一个包含许多行的文件,格式如下:

DIV ID=0X78800009 EXT="LOS ANGELES" TY=STANDARD OWN=0X74400002 ABBR=LA

我需要提取 EXT 值,但只提取引号中的部分。我目前正在使用这个:

for line in file:
    if sub in line:
        extlist.append([item[4:] for item in line.split() if item.startswith('EXT=')].pop())

但它只将 LOS ANGELES 的“LOS”部分附加到 idlist。我对python有点陌生,但是有没有办法包装item[4:]str(item[4:])使用字符串函数来提取我需要的值?

请注意,EXT 字段中的文本长度不同,它们都是随机的城市名称。

4

2 回答 2

4

常用表达

>>> import re
>>> myString = 'DIV ID=0X78800009 EXT="LOS ANGELES" TY=STANDARD OWN=0X74400002 ABBR=LA'
>>> re.search('EXT="(.+?)"',myString).group(1)
'LOS ANGELES'
于 2012-08-09T15:37:27.413 回答
2

如果您可以确定您的行中没有其他双引号,那么这个简单的方法将起作用:

s='DIV ID=0X78800009 EXT="LOS ANGELES" TY=STANDARD OWN=0X74400002 ABBR=LA'

s.split('"')[1]
'LOS ANGELES'

请注意,如果上述约束不成立,则使用正则表达式是一种更灵活/更可靠的查找方法。

否则,这是本着“简单胜于复杂”的精神解决此问题的一种方法。(Python之禅)。

于 2012-08-09T15:34:36.200 回答