将字符串的一部分从“[”移到末尾

2024-09-30 02:19:21 发布

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

下面是我的文本文件的一个片段:

import re 
f = open('/Users/name/Desktop/university_towns.txt',"r")
f.readlines()

Langston (Langston University)[5]
Norman (University of Oklahoma)[1]
Stillwater (Oklahoma State University)[5]
Tahlequah (Northeastern State University)[2]

我尝试了以下方法:

import re 
f = open('/Users/emreyavuz/Desktop/university_towns.txt',"r")
for i in f.readlines():
    if i.find(r'\(.*?\)'): 
       print(re.sub(r'\(.*?\)\[.*?\]', "", i))
    elif i.find(r'\s?\(.*?\)'):
        print(re.sub(r'\s?\(.*?\)\[.*?\]', "", i))
    else: 
       print(re.sub(r'\[.*?\]', "", i))

上面的代码应执行以下操作:

1)如果字符串包含此处(abc)删除(abc)

2)如果字符串包含此处(abc)删除(abc)

3)如果字符串包含[2]请删除[2]

它没有给我任何错误,但第二行(elif)不工作

有谁能帮我一把吗

输出示例:

La Crosse 
Madison 
Menomonie 
Milwaukee (Marquette University, University of Wisconsin–Milwaukee)
Oshkosh (University of Wisconsin–Oshkosh)

Tags: of字符串importretxtopenusersabc
1条回答
网友
1楼 · 发布于 2024-09-30 02:19:21

我们可以在这里尝试使用re.sub

for i in f.readlines():
    print(re.sub(r'\[\d+\]$', '' , i))

这假设在每行末尾出现的[num]标记后面不会有任何内容。如果有其他内容可以遵循,则必须调整上述模式

相关问题 更多 >

    热门问题