我有几个看起来像这样的字符串:
" Hello
( World
) "
我希望将它们更改为"Hello World"
等价物。
有没有办法在不使用多行代码的情况下执行此操作?
出类似的事情:
print(myString.remove(' ()\n'))
答案 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])