-3

我正在尝试使用 python 从文本文件中删除“()”。

我的输入行如下所示:

 N1B N 1.2620(4) 0.3320(4) 0.0049(7)

我想:

N 1.2620 0.3320 0.0049

基本上不想要任何被括号包裹的数字,并且想要丢弃第一列。

4

2 回答 2

7

使用正则表达式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'

如果您只想删除数字,请使用\dinsted 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'
于 2013-01-16T20:00:20.227 回答
0

或者,不使用惰性量词,您可以使用

re.sub('\([^)]*\)', '', s)

此外,要删除第一列,只需使用

re.sub('^[^ ]+ ', '', s)
于 2013-01-16T20:02:38.230 回答