python - 在某些单词后拆分或分区字符串

标签 python regex string split

首先让我说,我已经在谷歌上广泛搜索了几个小时,然后才在这里提问,如果我选择在这里发帖,我会非常绝望。

我有一些具有以下格式(近似)的字符串:

"firstword text ONE lastword"
"firstword text TWO lastword"

我需要提取 'firstword' 之后和 'ONE''TWO' 之前的 text >.

所以我对上述字符串的输出必须是:

"text"

如何拆分或分区字符串以便我可以:

  • 删除第一个单词(我已经知道如何用 str.split(' ') 做到这一点)
  • 保留任何“一”或“二”之前的文本。 (我认为它应该看起来像 str.split('ONE' | '两个'),但这显然行不通,我还没有设法找到 立即解决。

如果可能的话,我想用 split()partition() 来解决,但正则表达式也可以。

感谢您的帮助,如果这是一个愚蠢的问题,我们深表歉意。

最佳答案

您可以使用这个正则表达式,它可以进行正向前瞻和正向后视,

(?<=firstword)\s*(.*?)\s*(?=ONE|TWO)

Demo

解释:

  • (?<=firstword) --> 正向后视以确保匹配的文本后跟第一个词
  • \s* --> 吃掉任何空白
  • (.*?) --> 捕获您想要的数据
  • \s* --> 吃掉任何空白
  • (?=ONE|TWO) --> 正向前瞻以确保匹配的文本后跟一个或两个

关于python - 在某些单词后拆分或分区字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53374665/

相关文章:

javascript - 在正则表达式字符集中使用变量

r - 提取特定模式后的某些单词,同时排除指定模式。在R中

C# 将字符串行拆分为多个字符串

python - 将 Pandas DataFrame的每一行转换为单独的Json字符串

python - 动态填充下拉列表

python - 每次调用类时都需要创建随机数

c++ - 仅查找第一个 std::regex 有效匹配

python - 如何使用元组查询 pandas 列

java - java 查找字符串中所有连续的重复项

android.content.res.Resources$NotFoundException : String resource ID