如何使用 RegEx 提取单词之间的文本?

Posted

技术标签:

【中文标题】如何使用 RegEx 提取单词之间的文本?【英文标题】:How to extract the text between the word using RegEx? 【发布时间】:2022-01-12 18:12:14 【问题描述】:

我有这样的文字:

"ababbabbba"

我想将字符提取为 a 之间的列表。对于上面的文本,我期望输出如下:

['aba', 'abba', 'abbba']

我用过:

re.split(r'a(.*?)a', data)[1:-1]

但它不起作用。

【问题讨论】:

this 能回答你的问题吗? 这能回答你的问题吗? Python regex find all overlapping matches? 为什么不像:['a' + t + 'a' for t in data.split('a')][1:-1] 【参考方案1】:

如果您愿意使用 findall 而不是 split,则此方法可行。

import re

s = "ababbabbba"

print(re.findall(r'(?=(a[^a]+a))',s))

打印:

['aba', 'abba', 'abbba']

【讨论】:

以上是关于如何使用 RegEx 提取单词之间的文本?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 .NET C# regex 或其他任何方法提取 *>...* 之间的文本字符串?

如何使用 RegEx 提取键之间的值?

如何使用 sed/grep 提取两个单词之间的文本?

如何使用CHARINDEX和SUBSTRING在第二个和第三个“_”之间提取特定文本?

如何使用 nltk 从大文本语料库中仅提取英文单词?

如何使用 regex.match 在 c# 中提取字符串的特定部分? [复制]