是否有删除空格和特定字符的单行程序?

时间:2015-02-27 06:45:40

标签: python python-2.7

我有几个看起来像这样的字符串:

" Hello
  (  World
 ) "

我希望将它们更改为"Hello World"等价物。

有没有办法在不使用多行代码的情况下执行此操作?

出类似的事情:

print(myString.remove(' ()\n'))

3 个答案:

答案 0 :(得分:4)

联合中的Regex和python:)

import re

string = " Hello  (  World ) "
print((re.sub(r'\W+',' ', string)).strip())   

编辑:使它成为一个班轮;)

答案 1 :(得分:3)

>>> s = """ Hello
...   (  World
...  ) """
>>> import re
>>> re.sub(r"(?:^[\s()]+|[\s()]+$|[\s()]+\B)", "", s)
'Hello World'

然而,这种方法存在风险。最好分两行:

>>> s = """ Hello
...   (  )World
... ( ) """
>>> temp = re.sub(r"(?:^[\s()]+|[\s()]+$)", "", s)
>>> temp
'Hello\n  (  )World'
>>> re.sub(r"[\s()]+", " ", temp)
'Hello World'

答案 2 :(得分:2)

列表推导对您有用。

bad_symbols = '(){}\n' 
s = 'hello () { world \n }'
s = ''.join([x for x in s if x not in bad_symbols])