我正在尝试弄清楚如何拆分字符串,同时保留分隔符,除非分隔符后跟一个空格。我似乎是那里的大部分方式,除了紧跟在定界符后面的字符与定界符一起保留。
到目前为止,我有以下内容:
>>> s='\nm222 some stuff \n more stuff'
>>> re.split('(\n[^ ])',s)
['', '\nm', '222 some stuff \n more stuff']
我需要的结果是
['', '\n', 'm222 some stuff \n more stuff']
我在这里错过了什么?感谢您的帮助。
最佳答案
使用否定前瞻:
>>> s='\nm222 some stuff \n more stuff'
>>> re.split(r'(\n(?! ))', s)
['', '\n', 'm222 some stuff \n more stuff']
你的代码,
re.split('(\n[^ ])',s)
不起作用,因为 (\n[^ ])
将“非空格”字符放入与 \n
相同的捕获组中,从而为您提供 \nm
。 (\n(?! ))
避免使用“非空格”字符,将其放在下一个捕获组中但仍使用它进行拆分。
您可以在 python regex documentation page 上阅读有关前瞻的更多信息.
关于python - 在分隔符上拆分,除非后跟空格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17889303/