python - 使用多个定界符拆分字符串

标签 python regex

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

字符串:

Paragraph 4-2 says. i am going home$ early- Yes.

我需要的输出是

Paragraph 4-2 says
i am going home 
early
Yes

句子应该从 ., $- 拆分出来(但是当它在 2 个数字 (4-2) 之间时,它不应该分割)

我该怎么做?

text.split('.')

更新

新的输出应该是这样的:

Paragraph 4-2 says.
i am going home$ 
early-
Yes.

最佳答案

>>> 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']
  • \s*[.$-]\s*匹配 . 中的任何一个, $-由 0 个或多个空格包围 ( \s* )。
  • (?<!\d)是负向后视,以确保匹配前没有数字。
  • (?!\d)是一个否定前瞻,以确保匹配后没有数字。

您可以阅读更多关于环顾四周的信息 here .

关于python - 使用多个定界符拆分字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17899635/

相关文章:

keyup 上的 javascript 正则表达式

arrays - 如何使用 sed 将模式替换为整个数组?

ruby - 如何捕获正则表达式中某个单词之前的几个单词

c# - .NET 正则表达式模式?

python - matplotlib 慢速 3D 散点旋转

python - 非阻塞客户端中的事务?

python - 在 Django 中编辑 Django 代码 - Django

regex - 使用 RegEx 检查空格

Windows上的Python,打开彼此相邻的绘图窗口

python - 计算字符串中的字母数字和标点符号