首先让我说,我已经在谷歌上广泛搜索了几个小时,然后才在这里提问,如果我选择在这里发帖,我会非常绝望。
我有一些具有以下格式(近似)的字符串:
"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)
解释:
-
(?<=firstword)
--> 正向后视以确保匹配的文本后跟第一个词 -
\s*
--> 吃掉任何空白 -
(.*?)
--> 捕获您想要的数据 -
\s*
--> 吃掉任何空白 -
(?=ONE|TWO)
--> 正向前瞻以确保匹配的文本后跟一个或两个
关于python - 在某些单词后拆分或分区字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53374665/