我需要从文本文件中读取行,基本上所有包含第一个左括号的内容都可以用空字符串删除。 我提出了一个正则表达式:
>>> line = "Bar Harbor (College of the Atlantic)"
>>> re.sub(r"(.*) ?\(.*$","\1", line)
'\x01'
以下作品,但不包括没有符合规格的括号的行(因此它不起作用)
match = re.match("(.*?) ?\(.*$",line)
if match:
towns.append(match.group(1))
我在第一次替补时做错了什么?正则表达式不是必需的,我只需要在第一个括号后删除所有内容,所以如果有多种方式我也感兴趣。
答案 0 :(得分:0)
这是一种没有正则表达式的方法:
In [1]: x = "Bar Harbor (College of the Atlantic)"
In [6]: idx = x.find('(')
In [7]: x[:idx] if idx > 0 else x
Out[7]: 'Bar Harbor '