【发布时间】:2018-09-26 16:24:25
【问题描述】:
我需要从文本文件中逐行读取,基本上可以用空字符串删除包括第一个左括号之后的所有内容。 我想出了一个正则表达式:
>>> line = "Bar Harbor (College of the Atlantic)"
>>> re.sub(r"(.*) ?\(.*$","\1", line)
'\x01'
以下有效,但不包括不符合规范的不带括号的行(因此它不起作用)
match = re.match("(.*?) ?\(.*$",line)
if match:
towns.append(match.group(1))
我在第一个替代品中做错了什么?正则表达式不是必需的,我只需要删除第一个括号后的所有内容,如果有多个我也感兴趣的方法。
【问题讨论】:
-
如果first之后的所有
(都应该被删除,使用re.sub(r"\(.*","", line),为什么要添加(.*) ?? -
或者如果你要匹配,请执行
(?m)^[^(]+ -
谢谢@WiktorStribiżew 我希望是因为我在电脑后面花了太多时间,也许我该睡觉了。
标签: regex python-3.5