我使用的是Python 3.5,我希望用字符\n
或新行分割字符串。但是,如果该行以下划线开头,那么它应该将该行放在它上面的那一行。我需要解决方案适用于所有角色,而不仅仅是下划线。它应该像这样工作:
a = '''red
yellow
green
_surprise!
blue'''
print(a.split('\n')
并且应该导致:
['red', 'yellow', 'green\n_surprise', 'blue']
感谢您的帮助!
答案 0 :(得分:2)
使用正则表达式非常简单:
import re
re.split('\n(?!_)', a)
# ['red', 'yellow', 'green\n_surprise!', 'blue']
这个正则表达式意味着split by \n not followed by _
。
答案 1 :(得分:0)
您可以使用某些字符重新\n_
,然后使用分隔符\n
>>> a = '''red
... yellow
... green
... _surprise!
... blue'''
>>> a
'red\nyellow\ngreen\n_surprise!\nblue'
或者:
>>> [x.replace("###", "\n_") for x in a.replace("\n_", "###").split()]
['red', 'yellow', 'green\n_surprise!', 'blue']
或者:
>>> [x.replace("###", "\n_") for x in a.replace("\n_", "###").splitlines()]
['red', 'yellow', 'green\n_surprise!', 'blue']