这是我的第一个问题!????

图案应该是什么才能做出最后一个"!"是否显示为此拆分列表中的一个项目?

    import re
    re.split(r'([.?!]) ', 'One sentence. Another one? And the last one!')

我得到:['One sentence', '.', 'Another one', '?', 'And the last one!'],如果我使用([.?!]) ?,我得到['One sentence', '.', 'Another one', '?', 'And the last one', '!', '']. 但我想要这份 list :['One sentence', '.', 'Another one', '?', 'And the last one', '!']

谢谢!

推荐答案

您可以使用以下正则表达式拆分:

(?=[\.?!])|(?<=[\.?!] )

哪一个会匹配

  • (?=[\.?!]):任何后跟标点符号的位置
  • (?<=[\.?!] ):标点符号+空格后面的任何位置

查看演示here.


另一种 Select 是对所有字符串和所有标点符号使用匹配操作:

[^\.?!]+(?=[\.?!])|[\.?!]

这将匹配两种模式:

  • [^\.?!]+(?=[\.?!]):任何字符串[^\.?!]+,后跟标点符号(?=[\.?!])
  • [\.?!]:标点符号

查看演示here.

Python相关问答推荐

使用decorator 重复超载

更改Seaborn条形图中的x轴日期时间限制

由于瓶颈,Python代码执行太慢-寻求性能优化

用gekko解决的ADE方程系统突然不再工作,错误消息异常:@错误:模型文件未找到.& &

将HTML输出转换为表格中的问题

如何使用SubProcess/Shell从Python脚本中调用具有几个带有html标签的参数的Perl脚本?

分组数据并删除重复数据

acme错误-Veritas错误:模块收件箱没有属性linear_util'

从numpy数组和参数创建收件箱

图像 pyramid .难以创建所需的合成图像

使用groupby Pandas的一些操作

Python,Fitting into a System of Equations

"使用odbc_connect(raw)连接字符串登录失败;可用于pyodbc"

Pandas—合并数据帧,在公共列上保留非空值,在另一列上保留平均值

在Python中动态计算范围

部分视图的DataFrame

Pandas GroupBy可以分成两个盒子吗?

Flask Jinja2如果语句总是计算为false&

基于多个数组的多个条件将值添加到numpy数组

Pandas:填充行并删除重复项,但保留不同的值