Python正则表达式在括号之间替换

时间:2018-04-16 20:21:29

标签: regex python-3.5

我需要从文本文件中读取行,基本上所有包含第一个左括号的内容都可以用空字符串删除。 我提出了一个正则表达式:

>>> line = "Bar Harbor (College of the Atlantic)"
>>> re.sub(r"(.*) ?\(.*$","\1", line)
'\x01'

以下作品,但不包括没有符合规格的括号的行(因此它不起作用)

match = re.match("(.*?) ?\(.*$",line)
if match:
    towns.append(match.group(1))

我在第一次替补时做错了什么?正则表达式不是必需的,我只需要在第一个括号后删除所有内容,所以如果有多种方式我也感兴趣。

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 '