使用多个分隔符拆分字符串

use*_*906 1 python regex

我想用python拆分一个字符串.我已经成功地为一个变量完成了它,但发现它很难为2做.

字符串:

Paragraph 4-2 says. i am going home$ early- Yes.
Run Code Online (Sandbox Code Playgroud)

我需要输出

Paragraph 4-2 says
i am going home 
early
Yes
Run Code Online (Sandbox Code Playgroud)

句子应该从.,$和-(但当它在2个数字(4-2)之间时,它不应该分开)

我怎样才能做到这一点?

text.split('.')
Run Code Online (Sandbox Code Playgroud)

UPDATE

新输出应该是:

Paragraph 4-2 says.
i am going home$ 
early-
Yes.
Run Code Online (Sandbox Code Playgroud)

ars*_*jii 5

>>> import re
>>> s = 'Paragraph 4-2 says. i am going home$ early- Yes'
>>>
>>> re.split(r'(?<!\d)\s*[.$-]\s*(?!\d)', s)
['Paragraph 4-2 says', 'i am going home', 'early', 'Yes']
Run Code Online (Sandbox Code Playgroud)
  • \s*[.$-]\s*匹配的任何的.,$或-由0或多个空格包围(\s*).
  • (?<!\d) 是一个负面的背后隐藏,以确保匹配前面没有数字.
  • (?!\d) 是一个负向前瞻,以确保匹配后面没有数字.

您可以在此处阅读有关外观的更多信息.