在python中获取到标记之间的字符串

2024-06-03 02:02:00 发布

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

我有一个文本文件,我想得到两个标记之间的字符串

*rdfs:label "Henry Dunant"@de , "Henry Dunant"@en , "Henri Dunant"@fr ;*

这是一段文本,我只想得到字符串"Henry Dunant"@en,所以我得到了Henry Dunant

所以""@en之间的一切


Tags: 字符串标记文本defrlabelen文本文件
3条回答

我建议您阅读文本文件,然后使用(',')将其拆分为一个列表。 您可以使用循环遍历元素

制作另一个列表以保存新提取的元素

extracted= []
for rawstring in list:
    for character in rawstring:
        if character == 'firstmarker':
            index1 = rawstring.index(character)
        elif character == 'secondmarker':
            index2 = rawstring.index(character) 
    extracted.append(rawstring[index1+1:index2])

现在,您将拥有提取列表中的所有内容 用两个记号笔代替“第一个记号笔”和“第二个记号笔”

您可以使用正则表达式获取所需的数据,如下所示

import re

source = '*rdfs:label         "Henry Dunant"@de , "Henry Dunant"@en , "Henri Dunant"@fr ;*'
match = re.search(r'"[\w ]+"@en', source).group()
print(match)

有关python中正则表达式的更多信息,请参阅re documentation

如果您只想得到一个单词,可以尝试以下代码:

str_text = "rdfs:label         \"Henry Dunant\"@de , \"Henry Dunant\"@en , \"Henri Dunant\"@fr ;"
splitted_text = str_text.split("\"")
word = ""
for ind, fragment in enumerate(splitted_text):
    if fragment[:3]=="@en":
        word=splitted_text[ind-1]
print(word)

结果:

Henry Dunant

相关问题 更多 >