我正在尝试使用 python 从文本文件中删除“()”。
我的输入行如下所示:
N1B N 1.2620(4) 0.3320(4) 0.0049(7)
我想:
N 1.2620 0.3320 0.0049
基本上不想要任何被括号包裹的数字,并且想要丢弃第一列。
我正在尝试使用 python 从文本文件中删除“()”。
我的输入行如下所示:
N1B N 1.2620(4) 0.3320(4) 0.0049(7)
我想:
N 1.2620 0.3320 0.0049
基本上不想要任何被括号包裹的数字,并且想要丢弃第一列。
使用正则表达式re
:
>>> import re
>>> s = 'N1B N 1.2620(4) 0.3320(4) 0.0049(7)'
>>> re.sub('\(.*?\)', '', s)
'N1B N 1.2620 0.3320 0.0049'
?
标志是为了让你正则表达式变得懒惰。没有它你会得到:
>>> re.sub('\(.*\)', '', s)
'N1B N 1.2620'
如果您只想删除数字,请使用\d
insted of .
:
>>> s = 'N1B N 1.2620(spam) 0.3320(4) 0.0049(7)'
>>> re.sub('\(\d*?\)', '', s)
'N1B N 1.2620(spam) 0.3320 0.0049'
或者,不使用惰性量词,您可以使用
re.sub('\([^)]*\)', '', s)
此外,要删除第一列,只需使用
re.sub('^[^ ]+ ', '', s)